Функция отмены SQL - PullRequest
       7

Функция отмены SQL

0 голосов
/ 24 ноября 2018

У меня есть таблица с более чем 100 строками и 20 столбцами (магазин, продажи, размер, прибыль и т. Д.). Как мне можно развернуть только три столбца (магазин, метрика, значение)

текущее состояние

current state

будущее состояние

future state

1 Ответ

0 голосов
/ 25 ноября 2018

Я рекомендую использовать cross apply:

select t.store, v.metric, v.value
from t cross apply
     (values ('size', size),
             ('sales', sales),
             ('profit', profit),
             . . .
     ) v(metric, value);

Обратите внимание, что для этого требуется, чтобы столбец value имел совместимые типы.

Несмотря на то, что вам нужно перечислить все столбцы, выможет генерировать список с помощью запроса или электронной таблицы, упрощая процесс написания запроса.

...