我有一个包含以下结构和数据的表:
**Area | 01-Apr-17 | 02-Apr-17 | 03-Apr-17**
Field_A | 76 | 174 | 123
Field_B | 67 | 414 | 35
我需要这样的表格:
Area | Date | Alarm
Field_A | 01-Apr-17 | 76
Field_A | 02-Apr-17 | 174
Field_A | 03-Apr-17 | 123
Field_B | 01-Apr-17 | 67
Field_B | 02-Apr-17 | 414
Field_B | 03-Apr-17 | 358
我试图从下面的链接中采用枢轴功能,但无法获取与日期列链接的警报数据:
sql server single row multiple columns into one column
感谢您的帮助, 小号
答案 0 :(得分:2)
请查看此查询:
SELECT
Area,
Date,
Alarm
FROM yourtable
UNPIVOT
(
Alarm
FOR [Date] IN ([01-Apr-17], [02-Apr-17], [03-Apr-17])
) AS P
答案 1 :(得分:1)
使用SQL Server的PIVOT
是一种选择,但我们也可以使用一系列联合来处理这个问题:
SELECT Area, '01-Apr-17' AS Date, [01-Apr-17] AS Alarm
FROM yourTable
UNION ALL
SELECT Area, '02-Apr-17', [02-Apr-17]
FROM yourTable
UNION ALL
SELECT Area, '03-Apr-17', [03-Apr-17]
FROM yourTable
ORDER BY Area, Date;