我想将2列输出组合到一个列中。
示例:
select 1 as id, 2 as exid
当前输出:
id | exid
1 | 2
,但我想要以下输出:
id
1
2
如果我使用Concat
函数,则输出看起来像:
id
12
,我不想使用这种输出。
注意:我不想使用UNION
函数。
undivot将帮助您实现自己正在尝试做的事情
select exprid [id] from
(select 1 [id],2 [expid]
) s
unpivot (exprid for col in (id,expid)) as t2
与使用联合相比,这应该更快,因为它只会扫描一次,而不是两次。
另一种方法使用 outer apply
:
select x.*
from t outer apply
(values (id), (exid)) x(id);
但是,union all
是一种非常合理的方法,因此我经常建议使用它。