Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Sql Server中使用Pivot/unpivot将单行转换为单列_Sql_Sql Server_Data Analysis_Unpivot - Fatal编程技术网

在Sql Server中使用Pivot/unpivot将单行转换为单列

在Sql Server中使用Pivot/unpivot将单行转换为单列,sql,sql-server,data-analysis,unpivot,Sql,Sql Server,Data Analysis,Unpivot,我有一个单行表格,如下所示: +-------+-------+-------+-------+-------+ | (Col1)| (Col2)| (Col3)| (Col4)| (Col5)| +-------+-------+-------+-------+-------+ | Data1 | Data2 | Data3 | Data4 | Data5 | +-------+-------+-------+-------+-------+ 我想做的似乎很简单,但我在任何地方都找不到这样的

我有一个单行表格,如下所示:

+-------+-------+-------+-------+-------+
| (Col1)| (Col2)| (Col3)| (Col4)| (Col5)|
+-------+-------+-------+-------+-------+
| Data1 | Data2 | Data3 | Data4 | Data5 |
+-------+-------+-------+-------+-------+
我想做的似乎很简单,但我在任何地方都找不到这样的例子。我只想将上述行转换为单列,如下所示:

+-------------+
|(Column Name)|
+-------------+
|Data1        |
+-------------+
|Data2        |
+-------------+
|Data3        |
+-------------+
|Data4        |
+-------------+
|Data5        |
+-------------+

非常感谢您的帮助。

我建议您使用
apply

select v.col
from t cross apply
     (values (col1), (col2), (col3), (col4), (col5)) v(col);

我强烈建议
apply
over
unpivot
。但是,它们不是100%等价的,因为
unpivot
过滤掉
NULL
值。

您的表中是否总是只有一条记录?如果它有超过1行,你能告诉我们这是什么样子吗?请参阅关于UNOIN。答案取决于你真正使用的RDBMS。不要标记多个RDBMS,只标记您真正使用的RDBMSUNPIVOT,据我所知,它是一个t-SQL操作符。无论是
UNPIVOT
还是
交叉应用(值(col1)、(col2…
@TimBiegeleisen),这是UNOIN查询的结果集,总是希望有单行和多列。非常有用,谢谢@Gordon Linoff