我的 SQL 查询返回几列,但只返回一行。我需要将这一行和列的名称转置为两列 - 第一列包含列名称,第二列包含行值。由于某些原因,我无法使用交叉表。
我想要执行的操作如下所示。 之前:
Column1 | Column2 | Column3 | Column4
---------+---------+---------+--------
Value1 | Value2 | Value3 | Value4
我想要得到这个:
Cols | Vals
--------+---------
Column1 | Value1
Column2 | Value2
Column3 | Value3
Column4 | Value4
最佳答案
这符合你的要求吗?
SELECT
'Column1' AS Cols
, Column1 AS Vals
FROM Table
UNION ALL
SELECT
'Column2' AS Cols
, Column2 AS Vals
FROM Table
UNION ALL
SELECT
'Column3' AS Cols
, Column3 AS Vals
FROM Table
UNION ALL
SELECT
'Column4' AS Cols
, Column4 AS Vals
FROM Table
关于SQL - 将一行转置为两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31540904/