SQL Select 2 列作为单行列表
SQL Select 2 columns as list from single row
我有一个包含 [From], [To]
列的 table。我需要 select 这些列作为一个列表,我是这样做的:
SELECT [From] FROM [TableX] WHERE (...)
UNION
SELECT [To] FROM [TableX] WHERE (...)
问题是我不想重复 WHERE (...)
条件,因为它很长。有没有办法避免这种重复?
在派生的 table 中执行 UNION
,并有一个共同的 WHERE
子句。
select *
from
(
SELECT [From] FROM [TableX]
UNION
SELECT [To] FROM [TableX]
)
WHERE (...)
使用 CTE 防止重复您的 WHERE
条件:
;WITH [CTE_Criteria] AS (
SELECT [From], [To]
FROM [TableX]
WHERE (...)
)
SELECT [From] FROM [CTE_Criteria]
UNION
SELECT [To] FROM [CTE_Criteria];
我有一个包含 [From], [To]
列的 table。我需要 select 这些列作为一个列表,我是这样做的:
SELECT [From] FROM [TableX] WHERE (...)
UNION
SELECT [To] FROM [TableX] WHERE (...)
问题是我不想重复 WHERE (...)
条件,因为它很长。有没有办法避免这种重复?
在派生的 table 中执行 UNION
,并有一个共同的 WHERE
子句。
select *
from
(
SELECT [From] FROM [TableX]
UNION
SELECT [To] FROM [TableX]
)
WHERE (...)
使用 CTE 防止重复您的 WHERE
条件:
;WITH [CTE_Criteria] AS (
SELECT [From], [To]
FROM [TableX]
WHERE (...)
)
SELECT [From] FROM [CTE_Criteria]
UNION
SELECT [To] FROM [CTE_Criteria];