如何将多列合并为一列?

D R*_*D R 7 sql sql-server

我正在编写一个查询并希望将结果放在一列中我当前的结果返回这样

Column1     Column2    column3
1              A         CAT
Run Code Online (Sandbox Code Playgroud)

我希望结果像这样返回

Column1
1
A
CAT
Run Code Online (Sandbox Code Playgroud)

DxT*_*xTx 8

SELECT Column1 FROM TableName
UNION ALL
SELECT Column2 FROM TableName
UNION ALL
SELECT Column3 FROM TableName
Run Code Online (Sandbox Code Playgroud)

如果您不想要重复的值,请使用UNION代替UNION ALL

您也可以使用UNPIVOT运算符执行此操作

SELECT Column123
FROM
(
  SELECT Column1, Column2, Column3 
  FROM TableName
) AS tmp
UNPIVOT 
(
  Column123 FOR ColumnAll IN (Column1, Column2, Column3)
) AS unpvt;
Run Code Online (Sandbox Code Playgroud)

https://www.w3schools.com/sql/sql_union.asp
https://www.mssqltips.com/sqlservertip/3000/use-sql-servers-unpivot-operator-to-help-normalize-output/