我很抱歉,如果已经问过这个我找不到任何我想要的东西 - > 有没有办法返回匹配两个查询的记录列表,例如
ID | Name | Color
1 crayon blue
2 marker red
3 paint green
"Select Id, Name, color from TableA" =
ID | Name | Color
1 crayon blue
2 marker red
3 paint green
"Select Id, Name, color from TableA where color = 'blue'" =
ID | Name | Color
1 crayon blue
我希望有一些功能可以采用上面的两个查询并提供如下结果集:
ID | Name | Color
2 marker red
3 paint green
作为两个不相等的查询的记录。 提前谢谢!
答案 0 :(得分:4)
我将假设你的查询真的更复杂,这只是一个例子。一种方法是使用left join
:
with q1 as (<query1 here>),
q2 as (<query2 here>)
select q1.*
from q1 left join
q2
on q1.id = q2.id
where q2.id is null;
这假设匹配在id
。如果有更多列需要相同,请将它们添加到on
子句中。
答案 1 :(得分:1)
这个怎么样:
<query 1 here>
EXCEPT
<query 2 here>
当然,使用EXCEPT假定:
答案 2 :(得分:0)
您可以尝试以下查询来获得所需的结果集:
Select Id, Name, color from TableA
EXCEPT
Select Id, Name, color from TableA where color = 'blue'