这是我的表
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 '('.
答案 0 :(得分:1)
select * from table1
pivot
(
max(view1)
for view1 in([VIEW],[EDIT])
)as piv;
答案 1 :(得分:0)
使用PIVOT函数从sql查询中的行中获取列:
select action1,[VIEW] as 'VIEW' ,[EDIT] as 'EDIT' from table1
pivot
(
max(view1)
for view1 in([VIEW],[EDIT])
)as piv;
答案 2 :(得分:0)
通过使用MAX()函数,您可以得到结果
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