簡體   English   中英

SQL Server:比較行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM