我需要从单个表的 10 多列中提取单列数据。除了堆叠 10 多个联合选择语句之外,还有其他方法可以做到这一点,而不需要为每列重复联合选择语句吗?
我可以通过堆叠 10 多个 select 语句来获得它,如下所示:
select 'column_5' from table_a
union
select 'column_6' from table_a
union
select 'column_7' from table_a
union
.
.
.
union
select 'column_18' from table_a
感谢您提前抽出时间:)
最佳答案
使用Cross Apply
或UnPivot
您可以避免多个UNION
语句
select Distinct COL
from table
Cross apply
(
values
(column_1),
(column_2),
..
..
(column_18)
)
CS (COL)
注意:由于您使用了UNION
,所以我在select
中保留了Distinct
。如果您不想删除重复项,请从 select
关于sql-server - 如何减少 10 多个 union select 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32131085/