A.S*_*ekl 1 t-sql sql-server unpivot
我有一个单列的表,如下所示:
+-------------+
|(Column Name)|
+-------------+
|Data1 |
+-------------+
|Data2 |
+-------------+
|Data3 |
+-------------+
|Data4 |
+-------------+
|Data5 |
+-------------+
Run Code Online (Sandbox Code Playgroud)
我想做的事情似乎很简单,但我无法在任何地方找到它的任何例子.我想要的是将上面的列转换为单行,如下所示:
+-------+-------+-------+-------+-------+
| (Col1)| (Col2)| (Col3)| (Col4)| (Col5)|
+-------+-------+-------+-------+-------+
| Data1 | Data2 | Data3 | Data4 | Data5 |
+-------+-------+-------+-------+-------+
Run Code Online (Sandbox Code Playgroud)
我确信这是一项非常简单的任务,但我对使用数据库非常陌生.我感谢任何帮助.
您可以执行以下操作:
Select * from (
Select colname, RowN = Row_Number() over (order by colname) from #cols
) a
pivot (max(colname) for RowN in ([1],[2],[3],[4],[5])) p
Run Code Online (Sandbox Code Playgroud)
对于动态列列表
Declare @cols nvarchar(max)
Declare @query nvarchar(max)
Select @cols = stuff((select ','+QuoteName(Row_Number() over (Order by (Select NULL))) from #cols for xml path('')),1,1,'')
Select @query = ' Select * from (
Select colname, RowN = Row_Number() over (order by colname) from #cols
) a
pivot (max(colname) for RowN in (' + @cols + ')) p '
Exec sp_executesql @query
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4040 次 |
| 最近记录: |