【发布时间】:2018-06-01 16:58:33
【问题描述】:
举个简单的例子,假设我有两个表
T1 T2
======= =======
Val Val
======= =======
1 1
2 3
4 4
5 5
6
我想要的结果集是
2
3
6
因为这些是包含在其中一个而不是另一个中的数字。我知道它可以用类似的东西来完成
WITH cte1 (Val) AS (
SELECT Val
FROM T1
LEFT JOIN T2
ON T1.Val = T2.Val
WHERE Val IS NOT NULL
),
cte2 (Val) AS (
SELECT Val
FROM T2
LEFT JOIN T1
ON T1.Val = T2.Val
WHERE Val IS NOT NULL
)
SELECT *
FROM cte1
UNION WITH cte2
但是有没有更紧凑和/或更有效的方法来做到这一点?
【问题讨论】:
标签: sql sql-server tsql query-performance