請考慮以下查詢,其中兩個集合需要被相同的Location
過濾。是否有更高效的/高效的方法,因此Location
篩選器僅在兩個套件中應用一次,或者您是否被迫分別對每個套件應用相同的篩選器?SQL集合操作中的WHERE子句
SELECT *
FROM Orders
WHERE Quantity BETWEEN 1 AND 100
AND Location = 'SE'
EXCEPT
SELECT *
FROM Orders
WHERE Quantity BETWEEN 50 AND 75
AND Location = 'SE';
注:並不想重構組操作每SE-它只是一個虛擬的例子。我的問題只是關於如何在集合操作中處理常用的WHERE子句。
在列部分不清晰 - 這是否會使我的結果並排? – Yarin 2012-08-10 02:47:21
使用CTE時,必須明確命名列而不是使用'*'。這就是'Column1'和'Column2'表示的地方,因爲你沒有提供模式。 – RedFilter 2012-08-10 02:50:26
啊 - 明白了。好吧,這可能是什麼後 – Yarin 2012-08-10 02:50:55