SQL进阶教程1-7 集合运算练习题

 

  

  如果相等则会输出一行数据 ‘相等’,否则会显示空行。

SELECT '相等' AS result
FROM (SELECT * FROM tbl_a
            UNION
            SELECT * FROM tbl_b) temp
HAVING COUNT(*) = (SELECT COUNT(*) FROM tbl_a)
        AND COUNT(*) = (SELECT COUNT(*) FROM tbl_b)

 

  

原SQL:

SELECT DISTINCT emp
FROM EmpSkills ES1
WHERE NOT EXISTS
            (SELECT skill
                FROM Skills
                EXCEPT
                SELECT skill
                FROM EmpSkills ES2
                WHERE ES1.emp = ES2.emp);

答案:

SELECT DISTINCT emp
FROM EmpSkills ES1
WHERE NOT EXISTS
            (
                (
                SELECT skill
                FROM Skills
                EXCEPT
                SELECT skill
                FROM EmpSkills ES2
                WHERE ES1.emp = ES2.emp
                )
                UNION
                (
                SELECT skill
                FROM EmpSkills ES2
                WHERE ES1.emp = ES2.emp
                EXCEPT
                SELECT skill
                FROM Skills
                )

);

 

  

posted @ 2019-07-22 16:55  Garcia11  阅读(291)  评论(0)    收藏  举报