«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как эффективно преобразовать столбцы в строки в SQL Server?

Как эффективно преобразовать столбцы в строки в SQL Server?

Опубликовано в 2025-04-13
Просматривать:380

How Can I Efficiently Convert Columns to Rows in SQL Server?

подробное руководство по преобразованию столбцов в SQL Server

]

При обработке таблиц, содержащих большое количество метрических столбцов, преобразование этих столбцов в строки очень полезно для анализа и отчетности. Это преобразование включает в себя восстановление данных для создания новых таблиц с различными схемами.

]

resplage ratement

]

рассмотрим следующую структуру таблицы:

]
[ID] [EntityID] [Indicator1] [Indicator2] [Indicator3] ... [Indicator150]
]

Цель состоит в том, чтобы преобразовать эти метрические столбцы в ряды, создавая тем самым новую таблицу со следующей схемой:

]
[ID] [EntityId] [IndicatorName] [IndicatorValue]
]]

решение с использованием unpivot

Элегантное решение для выполнения этой задачи - воспользоваться функцией unpivot. Синтаксис Unpivot выглядит следующим образом:

]
UNPIVOT ([unpivot column] FOR [pivot column] IN ([pivot values]))
]

В этом примере столбец Unpivot представляет значение индикатора (например, «Indicator1», «indicator2» и т. Д.), а столбец Pivot представляет само имя столбца. Следующий запрос показывает, как использовать Unpivot:

]
select id, entityId,
  indicatorname,
  indicatorvalue
from yourtable
unpivot
(
  indicatorvalue
  for indicatorname in (Indicator1, Indicator2, Indicator3)
) unpiv;

, выполнив этот запрос, метрический столбец будет преобразован в строки, а имя и значение метрики будут заполнены новым столбцом.

]

Альтернативы

]

В дополнение к Unpivot есть и другие способы преобразования столбцов в строки:

    ]
  • применить применение с использованием Union All: Этот метод включает в себя использование Cross Apply и Union все, чтобы явно указать каждое имя метрического и значения.
  • ]
  • применить применение с использованием значений: аналогична приведенному выше методу, но применение пункта значений используется в перекрестке.
  • ]
  • Dynamic SQL: Для ситуаций с большим количеством столбцов индикатора вы можете использовать динамический SQL для автоматического генерации операторов запросов.
  • ]
]

выбор решения зависит от конкретных потребностей и версии используемого SQL Server.

]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3