sql-server - 使用 SQL Server 中的列标题将单行的列值转换为 2 列
问题描述
我需要将 Column 和一行转换为 2 列。下面是包含 4 列和单行的示例表 [Table01]。
First Second Third Forth
01 02 03 04
我需要将其转置为新表 [Table01_T]
Column01 Column02
First 01
Second 02
Third 03
Forth 04
每次我们收到 4 列的单行时,我们都需要将它们转换为 2 列和 4 行。
解决方案
像这样的东西
select
v.*
from [Table01]
cross apply
(values ('First', [First]),('Second',[Second]),
('Third',[Third]),('Forth',[Forth])) v(Column01, Column02);
使用相同的样本数据,此查询会产生相同的结果。我发现这种语法比 UNPIVOT 更具可读性。
结果
Column1 Column02
First 01
Second 02
Third 03
Forth 04
推荐阅读
- css - 用于垫子菜单的 Angular Material 2 垫子按钮之间的空间
- node.js - 如何使用express node js将数据传递到另一个页面
- arrays - 批处理脚本如何比较字符串数组
- mono - 在 Mono 上使用 Octo.exe 部署失败并显示“找不到您请求的资源”
- jquery - jQuery:原生 HTML5 在选项卡之间拖放
- sequelize.js - 带有续集的graphql加入外键
- javascript - WebSockets 与 Opera VPN 断开连接
- r - 如何在 R Shiny 的 selectInput 函数中有效地为列变量设置别名
- java - 如何处理应该有很多例外的情况?
- android - 谷歌地图:为什么我会收到referer-not-allowed-map-error?