【发布时间】:2020-01-21 20:45:51
【问题描述】:
我有一个“备注”字段,最多可以有 10 个代码管道分隔。字段结果的示例如下。我几乎通过使用如下所示的 Pivot 函数解决了这个问题。我似乎无法弄清楚的问题是如何将它们保持在备注字段中的正确顺序。在 1|120|482|10 下面的注释中,它按 1 10 120 482 而不是 1 120 482 10 的顺序在行中返回。有什么想法吗?
SELECT
,Remarks
,[1] AS Remark4
,[2] AS Remark5
,[3] AS Remark6
,[4] AS Remark7
,[5] AS Remark8
,[6] AS Remark9
FROM (SELECT
,Remarks
,value
,dense_Rank() OVER(PARTITION BY Remarks ORDER BY value) as testnbr
from incident
CROSS APPLY STRING_SPLIT(Remarks, '|') AS BK
) as srctbl
PIVOT(
max(VALUE)
FOR testnbr IN([1],[2],[3],[4],[5],[6])
) as PVT
备注
1|120|170
1|120|375
1|120|482|10
【问题讨论】:
标签: sql sql-server split pivot