【发布时间】:2016-12-07 20:34:36
【问题描述】:
您好,我想在下表上使用数据透视函数:
Id|Number| Code
1 | 34 |abc12345
1 | 23 |xqwe6758
2 | 37 |ghut564hg
3 | 456 |ghut8695
3 | 39 |ghtuj678
3 | 22 |fsdifje12
我希望它水平显示如下:
Id| Code1 | Code2 | Code3
1 | abc12345 | xqwe6758 | null
2 |ghut564hg | null | null
3 |ghut8695 | ghtuj678 | fsdifje12
SELECT Id
,[Code1]
,[Code2]
,[Code3]
FROM(SELECT Id,Code
FROM [TableName]
)d
pivot(
max(Id)
for Code in([Code1],[Code2],[Code3])
)as piv;
这会在 Id 列上引发无效的列名错误。有人可以帮助识别错误吗?
【问题讨论】:
-
@DanielCorzo :由于我在代码列中有非常随机的值,我不想硬编码该链接中提到的“大小写”值。会有变通办法吗?
-
最多 3 个代码有限制吗?
-
@Shnugo:是的,每个 ID 最多有 3 个代码
标签: sql-server pivot