【发布时间】:2017-11-24 20:53:26
【问题描述】:
我想将数据转换为表头,表头作为行如何转换?
这里是示例数据,请执行这条SQL
DECLARE @MyData table(
DateValue datetime,
Value1 int,
Value2 int,
Value3 int,
Value4 int,
ColumnData Varchar(10));
INSERT INTO @MyData(DateValue,Value1,Value2,Value3,Value4,ColumnData)
VALUES('12/1/2016',10,20,30,40,'D1')
INSERT INTO @MyData(DateValue,Value1,Value2,Value3,Value4,ColumnData)
VALUES('12/1/2016',11,21,31,41,'D2')
INSERT INTO @MyData(DateValue,Value1,Value2,Value3,Value4,ColumnData)
VALUES('12/1/2016',12,22,32,42,'D3')
SELECT * FROM @MyData
+-------------------------+--------+--------+--------+--------+------------+
| DateValue | Value1 | Value2 | Value3 | Value4 | ColumnData |
+-------------------------+--------+--------+--------+--------+------------+
| 2016-12-01 00:00:00.000 | 10 | 20 | 30 | 40 | D1 |
| 2016-12-01 00:00:00.000 | 11 | 21 | 31 | 41 | D2 |
| 2016-12-01 00:00:00.000 | 12 | 22 | 32 | 42 | D3 |
+-------------------------+--------+--------+--------+--------+------------+
是否可以在单个查询中将 MyData 转换为特定格式(参考图片)?
【问题讨论】:
-
你试过在sql server中使用pivot吗?
标签: sql-server pivot common-table-expression