sql - 在 SQL Server 中将不同的列转换为行
问题描述
我在 SQL Server 中有需要从列转换为行的数据。现在虽然这个问题已经被问了很多,但我仍然面临一些困难,因此我想知道是否有人可以帮助我。
目前格式如下。
所需且非常有用的表格格式将是;
因此,不仅需要应用 PIVOT,而且我不确定哪种 SQL 查询语法将有助于识别类型。我曾尝试将 CASE-WHEN 与 PIVOT 一起使用,但这确实会产生正确的输出。
问候!
解决方案
您可以使用如下所示的 CROSS APPLY 查询
Select
ProjectName,
v.*
from t
cross apply
(
values
('Plan',PlanStartDate,PlanEndDate),
('Actual',ActualStartDate, ActualEndDate)
)v(type,StartDate, EndDate)
推荐阅读
- javascript - 在没有安全确认的情况下打开新窗口?
- android - 带有背景的Android可重用布局导致lint overdraw错误
- javascript - javascript - 是否可以在服务器端阻止 xmlhttprequest 函数?
- html - “发送”按钮链接到联系表
- ios - 另一个集合视图中的集合视图:部分标题或单元格?
- php - SLIM FRAMEWORK 3:无法将变量从中间件传递到控制器
- swift - 如何访问函数变量并将其从超级视图中删除?
- node.js - 无法使用 jquery ajax put 方法从节点 js restful api mongoose 获取 ObjectId
- c - 为什么`synchronize_rcu()`在读锁块中被调用时不会死锁?
- mysql - 在 Mysql 中的相同表行中计算总时间