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

select 'asd'   union  all

select 'gfrf2'   union  all

select '2_44ff'   union  all

select 'ae6754'   union  all

select 'fff'   union  all

select 'zzzz'  

order by 1



надо развернуть так:
select '', 

'2_44ff',

'ae6754',

'asd',

'fff',

'gfrf2',

'zzzz'
14 мар 14, 22:09    [15727202]     Ответить | Цитировать Сообщить модератору
 Re: строчки в столбцы  [new]
_human
Member

Откуда:
Сообщений: 560
;with cte as (select '' col1 union  all

select 'asd'   union  all

select 'gfrf2'   union  all

select '2_44ff'   union  all

select 'ae6754'   union  all

select 'fff'   union  all

select 'zzzz' )

select p.*
from cte c
pivot (max(c.col1) for c.col1 in (['?'],[asd], [gfrf2], [2_44ff], [ae6754], [fff], [zzz]) ) as p 
14 мар 14, 22:52    [15727353]     Ответить | Цитировать Сообщить модератору
 Re: строчки в столбцы  [new]
sanek5678
Guest
это не совсем то что надо получить плюс нет колонки должны быть в таком же порядке как строчки в данных. Какже количество строчек в данных каждий раз будет менятся, и нужен квери троторый будет переверачивать все в колонки
14 мар 14, 23:09    [15727413]     Ответить | Цитировать Сообщить модератору
 Re: строчки в столбцы  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
PIVOT — поворот таблицы в T-SQL
15 мар 14, 17:33    [15729516]     Ответить | Цитировать Сообщить модератору
 Re: строчки в столбцы  [new]
_human
Member

Откуда:
Сообщений: 560
sanek5678,

http://technet.microsoft.com/ru-RU/library/ms177410(v=sql.105).aspx

если значения в полях заведомо неизвестны, то нужно использовать динамику.

для упорядочивания значений можно использовать row_number() over(order by col1)
15 мар 14, 17:39    [15729531]     Ответить | Цитировать Сообщить модератору
 Re: строчки в столбцы  [new]
sanek5678
Guest
Не получается динамический pivot сделать. Можите написать код для этого примера?

select '' col1 union  all

select 'asd'   union  all

select 'gfrf2'   union  all

select '2_44ff'   union  all

select 'ae6754'   union  all

select 'fff'   union  all

select 'zzzz'  

order by 1
18 мар 14, 21:13    [15748862]     Ответить | Цитировать Сообщить модератору
 Re: строчки в столбцы  [new]
_human
Member

Откуда:
Сообщений: 560
sanek5678,
вот пример.
18 мар 14, 22:33    [15749205]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить