Select 来自数据子集
Select from a subset of data
我正在 MS SQL Server 2014
中处理查询
基本上就是很多工会
select x, y
where a = b
union
select x, y
where a = b
union
select x, y
where a = b
它工作正常,但是每个 select 上的 where 子句都是相同的。为了便于维护,我想知道是否有更好、更清洁的方法来做到这一点。
我正在考虑以某种方式select首先使用 where 子句处理数据,然后仅对该数据执行所有其他查询。
但我愿意接受有关如何改进此查询的任何想法。
Select *
From
(
select x, y
union
select x, y
union
select x, y
) MyDerivedTable
Where ...
确保在派生的 table.
中的 table 的 select 语句中包含需要过滤的列
;WITH Test AS
(
SELECT x, y
UNION
SELECT x, y
UNION
SELECT x, y
)
SELECT * FROM Test
WHERE a = b
您可以使用子查询并在其外部使用 where 子句以便于维护。
只需确保在 where 子句中需要的子查询中包含所有列。例如
SELECT * FROM
(
SELECT x,y,a,b FROM table1
union
SELECT x,y,a,b FROM table2
UNION
SELECT x,y,a,b FROM table3
)subquery
WHERE a=b
我正在 MS SQL Server 2014
中处理查询基本上就是很多工会
select x, y
where a = b
union
select x, y
where a = b
union
select x, y
where a = b
它工作正常,但是每个 select 上的 where 子句都是相同的。为了便于维护,我想知道是否有更好、更清洁的方法来做到这一点。
我正在考虑以某种方式select首先使用 where 子句处理数据,然后仅对该数据执行所有其他查询。
但我愿意接受有关如何改进此查询的任何想法。
Select *
From
(
select x, y
union
select x, y
union
select x, y
) MyDerivedTable
Where ...
确保在派生的 table.
中的 table 的 select 语句中包含需要过滤的列;WITH Test AS
(
SELECT x, y
UNION
SELECT x, y
UNION
SELECT x, y
)
SELECT * FROM Test
WHERE a = b
您可以使用子查询并在其外部使用 where 子句以便于维护。 只需确保在 where 子句中需要的子查询中包含所有列。例如
SELECT * FROM
(
SELECT x,y,a,b FROM table1
union
SELECT x,y,a,b FROM table2
UNION
SELECT x,y,a,b FROM table3
)subquery
WHERE a=b