使用except函数,select from B where (select count(1) from A where AID = BID) = 0
方法一(推荐)
WITH C AS ( SELECT Name
FROM ConsumerCouponApply A
WHERE NOT EXISTS ( SELECT 1
FROM ConsumerCouponApply B
WHERE BName = AName
GROUP BY BName )
GROUP BY AName
)
SELECT COUNT(1)
FROM C
方法二
WITH C AS ( SELECT AName
FROM ConsumerCouponApply A
GROUP BY AName
EXCEPT
SELECT BName
FROM ConsumerCouponApply B
GROUP BY BName
)
SELECT COUNT(1)
FROM C
方法三
SELECT COUNT(AName)
FROM ConsumerCouponApply A
LEFT JOIN ConsumerCouponApply B ON AName = BName
WHERE BID IS NULL
扩展资料:
高级查询运算词:
A: UNION 运算符:
UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个
结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行
不是来自 TABLE1 就是来自 TABLE2。
B: EXCEPT 运算符
EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
C: INTERSECT 运算符
INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当
ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。
注:使用运算词的几个查询结果行必须是一致的。
帮助上写的格式是Except({select from student where sdept='cs'}, {select from student where sage<=19})
我试验了一下 提示是 [Microsoft][ODBC SQL Server Driver]语法错误或违反访问规则
建议用别的函数 像常用的not exists
以上就是关于SQL 查找两表中不同的数据全部的内容,包括:SQL 查找两表中不同的数据、有谁知道这个sql程序怎么错了关于except、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)