Как распространить столбец с помощью SQL-запроса? - PullRequest
0 голосов
/ 15 мая 2019

У меня есть следующая таблица

SourceTbl

FileNum    EventCode  ChargeDescrip       
510-1        DP           steal          
510-1        DP          possession          
510-2        DP          robbery          
510-2        DP           firearm          
510-2        DP           delivery          
510-3        DP          robbery          

Я хочу распространить эти данные на основе chargedescrip столбца

DestTbl

FileNum    EventCode  Charge1,     Charge2      Charge3 
510-1        DP           steal    possession     
510-2        DP          robbery   firearm      delivery
510-3        DP          robbery          

Как мне сделать это с помощью SQL-запроса?Я обнаружил, что могу использовать предложение PIVOT.Но я использую его.

1 Ответ

0 голосов
/ 16 мая 2019

Вы должны использовать ROW_NUMBER и использовать его для генерации столбцов Charge1, Charge2, Charge3 .....

WITH Cases
AS (
    SELECT [FileNum]
    ,[EventCode]
    ,[ChargeDescrip]
    ,ROW_NUMBER() OVER (
        PARTITION BY [FileNum] ORDER BY [FileNum] ASC
        ) 'RN'
FROM SourceTbl
)
SELECT [FileNum]
,[EventCode]
,[1] Charge1
,[2] Charge2
,[3] Charge3
FROM Cases
pivot(max([ChargeDescrip]) FOR [RN] IN (
        [1]
        ,[2]
        ,[3]
        )) p
...