【发布时间】:2014-09-16 06:47:43
【问题描述】:
【问题讨论】:
标签: sql sql-server-2012 pivot
【问题讨论】:
标签: sql sql-server-2012 pivot
sql lite 中没有任何PIVOT 函数。您提供的链接指向哪个链接。但你可以这样做:
SELECT
yourtable.Id,
yourtable.Date,
MAX(CASE WHEN [Type]=1 THEN [Value] ELSE NULL END) AS [1],
MAX(CASE WHEN [Type]=2 THEN [Value] ELSE NULL END) AS [2],
MAX(CASE WHEN [Type]=3 THEN [Value] ELSE NULL END) AS [3]
FROM
yourtable
GROUP BY
yourtable.Id,
yourtable.Date
如果您想使用枢轴执行此操作并且正在使用 MSSQL 2012。那么您可以这样做:
SELECT
*
FROM
(
SELECT
yourtable.Id,
yourtable.Date,
yourtable.Type,
yourtable.Value
FROM
yourtable
) AS sourceTable
PIVOT
(
MAX(Value)
FOR Type IN([1],[2],[3],[4])
) AS pvt
这将导致:
1 2014-04-01 00:00:00.000 23 NULL NULL NULL
2 2014-04-01 00:00:00.000 56 NULL NULL NULL
3 2014-04-01 00:00:00.000 12 78 NULL NULL
2 2014-07-01 00:00:00.000 56 NULL NULL NULL
3 2014-07-01 00:00:00.000 12 78 33 NULL
【讨论】: