SQL 查找两表中不同的数据

SQL 查找两表中不同的数据,第1张

使用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、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9799000.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存