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

Откуда: Minsk Power Station
Сообщений: 520
Извините за получившийся каламбурчик :)

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

Есть поля id и group
записи такие:
1, 3
2, 1
3, 2

Результат нужен такой:
id	group1	group2	group3
1 1
2 1
3 1

Правильно ли сделать запрос вида
SELECT id, group1 = CASE group WHEN 1 THEN 1 ELSE '' END, group2 = CASE group WHEN 2 THEN 2 ELSE '' END, group3 = CASE group WHEN 3 THEN 3 ELSE '' END
?

Или подобную задачу лучше решить иным способом?
27 окт 11, 18:41    [11511834]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли использовать одно поле трижды для вывода в 3 поля в зависимости от значения?  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
declare @t table ( id int, group_id int )
insert into @t
values (1,3), (2,1), (3,2)

select * from @t t
pivot ( max(group_id) for group_id in ([1],[2],[3]) ) pv
27 окт 11, 20:01    [11512165]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли использовать одно поле трижды для вывода в 3 поля в зависимости от значения?  [new]
palladin600
Member

Откуда: Minsk Power Station
Сообщений: 520
Knyazev Alexey,
большое спасибо.

Красиво получилось.
28 окт 11, 00:40    [11513160]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить