2017-02-17 2 views
-1

мой запрос дает мне результат следующим образом:Как транспонировать результат запроса в SQL Server (строк в столбцах)

initial query

так, я хочу, чтобы превратить этот результат в этом:

query transformed

Обратите внимание на поля пересечения со значениями NULL.

+0

Вы должны использовать 'PIVOT' для этого. Google это - очень легко узнать – cha

+0

Было бы полезно знать, что ваш запрос был, который возвратил результат, иначе кому-либо трудно дать вам ответ. Подумайте о том, как добавить свой SQL к вопросу. –

ответ

1

PIVOT - это способ сделать это, и это может сбить с толку (по крайней мере, это было для меня).

https://www.codeproject.com/Tips/500811/Simple-Way-To-Use-Pivot-In-SQL-Query

+0

Спасибо. Но что, если число полей для транспонирования является динамическим? – JPacheco

+0

Благодаря вашей ссылке я нашел еще одну ссылку с лучшим объяснением. http://sqlhints.com/2014/03/18/dynamic-pivot-in-sql-server/ – JPacheco

0
select id,SN, 
case Part when 'P1' then '1' else null end 'P1', 
case Part when 'P2' then '1' else null end 'P2', 
case Part when 'P3' then '1' else null end 'P3', 
case Part when 'P4' then '1' else null end 'P4', 
case Part when 'P5' then '1' else null end 'P5' 
    from table1 
+0

Спасибо Javlon, но моя проблема в том, что у меня есть динамическое число полей для транспонирования. – JPacheco

Смежные вопросы