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

Как преобразовать строки в столбцы в SQL Server, используя функцию Pivot?

Опубликовано в 2025-03-22
Просматривать:703

How to Convert Rows to Columns in SQL Server Using the PIVOT Function?

преобразовать строки в столбцы, используя функцию pivot в SQL Server

]

вопрос

таблицы Pivot в SQL Server обеспечивают мощный способ транспонирования данных из строк в столбцы. Тем не менее, пользователи могут столкнуться с проблемами при создании правильного запроса.

]

Решение

Используйте функцию Pivot для известных значений столбцов:

]

для предопределенных значений столбцов (в данном случае количество недель) вы можете использовать функцию Pivot напрямую:

]
select *
from 
(
  select store, week, xCount
  from yt 
) src
pivot
(
  sum(xcount)
  for week in ([1], [2], [3])
) piv;

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

]

для обработки неизвестных значений столбцов (например, динамические недели) можно использовать комбинацию динамических функций SQL и Window:

]
DECLARE @cols AS NVARCHAR(MAX),
    @query  AS NVARCHAR(MAX)

select @cols = STUFF((SELECT ','   QUOTENAME(Week) 
                    from yt
                    group by Week
                    order by Week
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'')

set @query = 'SELECT store,'   @cols   ' from 
             (
                select store, week, xCount
                from yt
            ) x
            pivot 
            (
                sum(xCount)
                for week in ('   @cols   ')
            ) p '

execute(@query);
]

результат:

оба метода дают одинаковый результат:

]

|.

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

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

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

Copyright© 2022 湘ICP备2022001581号-3