2014-02-13 3 views
0

Это мой столSql запрос, чтобы преобразовать столбец строки

create table table1(action1 varchar(10),view1 varchar(10)) 

insert into table1 values('A1','VIEW'),('A1','EDIT'),('A2','VIEW'),('A3','VIEW'),('A3','EDIT') 

Мне нужен выход, как это!

action1 VIEW EDIT 
A1 VIEW EDIT 
A2 VIEW NULL 
A3 VIEW EDIT 

Я попытался с помощью шарнира, но я получаю ошибку Msg 102, Level 15, State 1, Line 8 Incorrect syntax near '('.

+3

«* Я попытался с помощью поворота *» - так почему бы вам не показать нам запрос, который вы пробовали? –

ответ

1
select * from table1 
    pivot 
    (
    max(view1) 
    for view1 in([VIEW],[EDIT]) 
    )as piv; 

See Demo

0

использовать функцию PIVOT для получения столбца из строки в SQL запросе:

select action1,[VIEW] as 'VIEW' ,[EDIT] as 'EDIT' from table1 
    pivot 
    (
    max(view1) 
    for view1 in([VIEW],[EDIT]) 
    )as piv; 
0

Используя функцию MAX() y ожно получить результат

SELECT action1, 
    MAX(CASE view1 WHEN 'View' THEN view1 ELSE '' END) ViewCol, 
    MAX(CASE view1 WHEN 'Edit' THEN view1 ELSE null END) EditCol 
    FROM table1 
    GROUP BY action1 
Смежные вопросы