Разделение значения строки на определенные столбцы на основе значения - PullRequest
0 голосов
/ 24 мая 2019

У меня есть такая таблица, которая фактически управляет препятствиями в VSTS

Team Name   Item ID    Score   Score Label
-------------------------------------------
Team1         1          2     Green
Team1         2          0     Red
Team1         3          1     Amber
Team1         4          2     Green
Team1         5          0     Red
Team2         6          1     Amber
Team2         7          0     Red
Team3         8          2     Green

Но мне нужно представить это по-другому, как это

Team Name   Item ID    Score   Green    Amber     Red
------------------------------------------------------
Team1         1          2       1       0         0
Team1         2          0       0       0         1
Team1         3          1       0       1         0
Team1         4          2       1       0         0
Team1         5          0       0       0         1
Team2         6          1       0       1         0
Team2         7          0       0       0         1
Team3         8          2       1       0         0

Я считаю, что поворот SQL - лучший способ. Но я не эксперт в опоре. Может кто-нибудь помочь мне с этим?

1 Ответ

2 голосов
/ 24 мая 2019

Выражение case, вероятно, самое быстрое решение:

    SELECT Team Name, Item ID, Score
    , case when Score Label = 'Green' then 1 else 0 end as 'Green'
    , case when Score Label = 'Amber' then 1 else 0 end as 'Amber'
    , case when Score Label = 'Red' then 1 else 0 end as 'Red'
    from Table
...