在 SQL Server 中将字符串数据从行透视到列



我有一个数据集如下:

Sales_Doc    Item   SLNo    SubCt    SubRef
----------------------------------------------  
48145         10    1         R      16213000
48145         10    1         J      28776213
48145         10    2         J      28776214
48145         10    1         M      39375228

我希望得到以下结果

Sales_Doc   Item    SLNo       J            R           M
-------------------------------------------------------------
48145         10    1       28776213    16213000    39375228
48145         10    2       28776214    16213000    39375228

我已经尝试了几种方法,但没有一种方法能给我正确的结果。有人可以帮忙处理SQL Server代码吗?

如果结果是一个拼写错误,并且您想按Sales_Doc、项目、SlNo 获得 J\R\M,那么您可以使用 PIVOT,如下所示:

SELECT * 
FROM MyTable
pivot (MAX(SubRef) FOR SubCt IN ([R],[J],[M]) ) pvt;

DBFiddle演示在这里

最新更新