Отмена поворота данных в T-SQL: методы и примеры

В T-SQL операция UNPIVOT используется для преобразования данных по столбцам в данные по строкам. Эта операция особенно полезна, когда вам нужно проанализировать или манипулировать данными в другом формате. В этой статье блога мы рассмотрим различные методы выполнения UNPIVOT в T-SQL с примерами кода.

Метод 1: использование оператора UNPIVOT
Оператор UNPIVOT — это встроенная функция T-SQL, позволяющая преобразовывать столбцы в строки. Вот пример:

SELECT [Country], [Year], [Value]
FROM (
    SELECT [Country], [2019], [2020], [2021]
    FROM [YourTable]
) AS SourceTable
UNPIVOT (
    [Value] FOR [Year] IN ([2019], [2020], [2021])
) AS UnpivotedTable;

Метод 2: использование UNION ALL
Другой подход – использование оператора UNION ALL для объединения нескольких операторов SELECT, каждый из которых представляет столбец, в один набор результатов:

SELECT [Country], '2019' AS [Year], [2019] AS [Value]
FROM [YourTable]
UNION ALL
SELECT [Country], '2020' AS [Year], [2020] AS [Value]
FROM [YourTable]
UNION ALL
SELECT [Country], '2021' AS [Year], [2021] AS [Value]
FROM [YourTable];

Метод 3: использование CROSS APPLY и VALUES
Вы также можете использовать оператор CROSS APPLY с предложением VALUES, чтобы отменить сведение данных:

SELECT [Country], [Year], [Value]
FROM [YourTable]
CROSS APPLY (
    VALUES
        ('2019', [2019]),
        ('2020', [2020]),
        ('2021', [2021])
) AS UnpivotedTable([Year], [Value]);

В этой статье мы рассмотрели три метода выполнения UNPIVOT в T-SQL. Оператор UNPIVOT, UNION ALL и CROSS APPLY со значениями предоставляют эффективные способы преобразования данных по столбцам в данные по строкам. В зависимости от ваших конкретных требований и предпочтений вы можете выбрать метод, который лучше всего соответствует вашим потребностям.