我在這裏有一種情況。SQL Server查詢在兩個表中查找不同名稱
我有兩個表:
我需要一個SQL查詢,它將打印上校的名字這是在兩個表不同。
例如,在這種情況下,查詢應該打印結果爲:
原因是清楚m
存在於表1,但在表2不存在。 z
類似於表-2中的情況,但不在表-1中。
我真的很抱歉,請幫忙。
柱面名稱不區分大小寫。
謝謝。
我在這裏有一種情況。SQL Server查詢在兩個表中查找不同名稱
我有兩個表:
我需要一個SQL查詢,它將打印上校的名字這是在兩個表不同。
例如,在這種情況下,查詢應該打印結果爲:
原因是清楚m
存在於表1,但在表2不存在。 z
類似於表-2中的情況,但不在表-1中。
我真的很抱歉,請幫忙。
柱面名稱不區分大小寫。
謝謝。
嘗試:
select coalesce(t1.Col1, t2.Col1)
from [Table-1] t1
full outer join [Table-2] t2 on t1.Col1 = t2.Col1
where t1.Col1 is null or t2.Col1 is null
SQLFiddle here。
或者:
select Col1 from
(select Col1 from [Table-1] union all select Col1 from [Table-2]) sq
group by Col1 having count(*) = 1
SQLFiddle here。
你也可以使用NOT EXISTS來得到結果:
select col1
from table1 t1
where not exists (select 1
from table2 t2
where t1.col1 = t2.col1)
union all
select col1
from table2 t2
where not exists (select 1
from table1 t1
where t1.col1 = t2.col1);
或者甚至在:
select col1
from table1 t1
where col1 not in (select col1
from table2 t2)
union all
select col1
from table2 t2
where col1 not in (select col1
from table1 t1);
我想最簡單的一個這是
SELECT COL1 AS ResultCol FROM TABLE1 where COL1 not in (select COL2 from TABLE2) UNION SELECT COL2 AS ResultCol FROM TABLE2 where COL2 not in (select COL1 from table1)
declare @tab1 table(id int,col1 varchar(1))
declare @tab2 table(id int,col1 varchar(1))
INSERT INTO @tab1
([id], [Col1])
VALUES
(1, 'A'),
(2, 'B'),
(3, 'm'),
(4, 'c')
INSERT INTO @tab2
([id], [Col1])
VALUES
(1, 'A'),
(2, 'B'),
(3, 'C'),
(4, 'z')
select b.id,b.col1 from
(
select a.id,a.col1,b.col1 x from @tab1 a left join @tab2 b on a.col1 = b.col1
union
select b.id,b.col1,a.col1 x from @tab1 a right join @tab2 b on a.col1 = b.col1
) b
where b.x is null
這個操作有一個特別的功能。除了和INTERCEPT。
查找哪些值(單柱結果或多列結果)不存在於以下查詢
- 什麼的表A中,是不是在表B中
SELECT col1 FROM TableA
EXCEPT
SELECT col1 FROM TableB
- 什麼是表B中,是不是在表格中的
SELECT col1 FROM TableB
EXCEPT
SELECT col1 FROM TableA
同樣,攔截關鍵字告訴你什麼是共享
- 什麼在表A和B表
SELECT col1 FROM TableA
INTERCEPT
SELECT col1 FROM TableB
您還可以使用FULL OUTER JOIN操作。 Visual Representation of SQL Joins
SELECT ROW_NUMBER() OVER(ORDER BY COALESCE(t1.Col1, t2.Col1)) AS id,
COALESCE(t1.Col1, t2.Col1) AS ResultCol
FROM Table1 t1 FULL JOIN Table2 t2 ON t1.Col1 = t2.Col1
WHERE t1.Col1 IS NULL OR t2.Col1 IS NULL
感謝您的回覆例如,最終測試後,我會盡快給你。 – Azeem