请考虑以下查询,其中两个集合需要被相同的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