[英]SQL server: Compare rows
我需要一個可以執行以下操作的查詢。 我有一張兩列的桌子
ID Values
1 1
1 2
1 3
1 4
2 2
2 5
2 6
如果您看到ID 1,我有1,2,3和4作為值,ID 2我有2,5和6。
我想寫一個查詢,返回以下內容
1(-)4(-)5(+)6(+)
通過比較兩個id,刪除均值1和4,並添加5和6。
可能嗎? 請告訴我
謝謝
就像是:
(
SELECT T.Value FROM dbo.Table T WHERE T.ID = 1
EXCEPT
SELECT T.Value FROM dbo.Table T WHERE T.ID = 2
)
UNION
(
SELECT T.Value FROM dbo.Table T WHERE T.ID = 2
EXCEPT
SELECT T.Value FROM dbo.Table T WHERE T.ID = 1
)
這將為您提供與1而不是2和2而不是1關聯的值的列表。您可以輕松地將其中一個子查詢的值乘以-1以區分它們,或將它們作為兩個單獨的查詢運行。
這將給您1和4:
select a.values
from my_table a
where not exists (
select * from my_table b where b.values = a.values and b.ID = 2)
and a.ID = 1
這將給您5&6:
select a.values
from my_table a
where not exists (
select * from my_table b where b.values = a.values and b.ID = 1)
and a.ID = 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.