Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 строки в столбцы  [new]
Volodya
Member

Откуда:
Сообщений: 450
Добрый день!
Имеется таблица:
if OBJECT_ID('tempdb..#answersdocs') is not null	drop table #answersdocs
create table #answersdocs
	(qstid int, SpAnswer varchar(5), qstclass varchar(10)
	,FS varchar(5), PR varchar(5), А0 varchar(5)
	)

insert #answersdocs (qstid, SpAnswer, qstclass)
values (1, 'Y', 'FS'),
(1, 'N', 'PR'),
(1, 'n', 'А0')
select * from #answersdocs


Каким запросом можно получить такой результат в одну строку вот так? :
qstid	FS	PR	А0
1	Y	N	n


Я пробовал так :
select qstid, qstclass, SpAnswer from 
( select qstid, FS, PR from #answersdocs )  x
UNPIVOT
( SpAnswer  FOR qstclass IN (FS, PR) ) unpvt


но резалтсет пустой.
18 мар 15, 09:43    [17397767]     Ответить | Цитировать Сообщить модератору
 Re: строки в столбцы  [new]
Glory
Member

Откуда:
Сообщений: 104751
Volodya
Я пробовал так :
select qstid, qstclass, SpAnswer from 
( select qstid, FS, PR from #answersdocs )  x
UNPIVOT
( SpAnswer  FOR qstclass IN (FS, PR) ) unpvt



но резалтсет пустой.

Это наверное потому, что вам нужна команда PIVOT
18 мар 15, 09:48    [17397791]     Ответить | Цитировать Сообщить модератору
 Re: строки в столбцы  [new]
Добрый Э - Эх
Guest
Volodya, тут нужен , pivot, а не unpivot
18 мар 15, 09:48    [17397794]     Ответить | Цитировать Сообщить модератору
 Re: строки в столбцы  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Volodya,

из строк столбцы делает PIVOT.
Или по-старинке MIN(CASE WHEN THEN END)
18 мар 15, 09:49    [17397798]     Ответить | Цитировать Сообщить модератору
 Re: строки в столбцы  [new]
Volodya
Member

Откуда:
Сообщений: 450
Спасибо.

select qstid, FS, PR, А0 from 
( select qstid, qstclass, SpAnswer from #answersdocs )  x
PIVOT
( min(SpAnswer)  FOR qstclass IN (FS, PR, А0) ) unpvt
18 мар 15, 10:00    [17397848]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить