Транспонирование строк в столбцы на основе столбца ID

В настоящее время я запускаю SQL Server 2008 и пытаюсь получить следующие данные подзапроса:

ID | Field Name | Field Selection 1 | Rating 1 | Good 1 | Rating 2 | Good 1 | Rating 3 | Bad 2 | Rating 1 | OK 

Сгруппированы в одну строку на основе столбца ID:

 ID | Rating 1 | Rating 2 | Rating 3 1 | Good | Good | Bad 2 | OK | NULL | NULL 

Это возможно? Заранее спасибо!

Привет, Si

вы можете использовать предложение pivot SQL Server для этого:

 select p.* from Table1 pivot( max([Field Selection]) for [Field Name] in ([Rating 1], [Rating 2], [Rating 3]) ) as p 

или вы можете поворачивать вручную:

 select ID, max(case when [Field Name] = 'Rating 1' then [Field Selection] end) as [Rating 1], max(case when [Field Name] = 'Rating 2' then [Field Selection] end) as [Rating 2], max(case when [Field Name] = 'Rating 3' then [Field Selection] end) as [Rating 3] from Table1 group by ID 

Демо-версия

Interesting Posts

Как найти таблицу с первичным ключом с определенным именем столбца в Microsoft SQL?

Как преобразовать локальный файл sql в json с nodejs

строка подключения

SQL Query Pulling NULL значение, когда JOINED с другими таблицами

TSQL – как определить, сгруппирован ли SQL?

Неправильный синтаксис рядом с ключевым словом «Truncate». Должен объявить скалярную переменную '@table'

Случайно показывайте три разных вопроса на загрузку страницы

Sql Выберите верхнюю 2, нижнюю 2 и 6 случайных записей

Внедрить «Пересечение» с помощью «UNION ALL» и «GROUP BY»

Резервное копирование базы данных SQL Server в текстовый файл (например, CSV) с использованием c #

Поиск сканирования таблиц / индексов

SQL Server + ODBC + QT: отображение BLANK записей после транзакции

Сортировать по разным, но затем циклу

Как правильно убрать возвращаемое значение из вызова в хранимую процедуру

Имя переменной в выражении select

Давайте будем гением компьютера.