關於select查詢的寫法
我有一張表:TEST(Menu_Name varchar(3), Action_Name varchar(4) )
里面的資料顯示為
Menu_Name Action_Name
A01 新增
A01 修改
A01 刪除
A01 審核
B01 新增
B01 修改
C01 刪除
C01 審核
現在我想用SELECT查詢顯示結果為:
Menu_Name Action_Name
A01 新增;修改;刪除;審核
B01 新增;修改
C01 刪除;審核
請大家指教一二,感激不盡!
------解决方案-------------------- create table T(Menu_Name varchar(3), Action_Name varchar(4) )
insert T select 'A01 ', '新增 '
union all select 'A01 ', '修改 '
union all select 'A01 ', '刪除 '
union all select 'A01 ', '審核 '
union all select 'B01 ', '新增 '
union all select 'B01 ', '修改 '
union all select 'C01 ', '刪除 '
union all select 'C01 ', '審核 '
create function fun(@Menu_Name char(3))
returns varchar(100)
as
begin
declare @re varchar(1000)
set @re= ' '
select @re=@re+Action_Name+ '; ' from T where Menu_Name=@Menu_Name
select @re=left(@re, len(@re)-1)
return @re
end
select distinct Menu_Name, dbo.fun(Menu_Name) as Action_Name from T
--result
Menu_Name Action_Name
--------- ----------------------------------------------------------------
A01 新增;修改;刪除;審核
B01 新增;修改
C01 刪除;審核
(3 row(s) affected)
------解决方案--------------------create table test(Menu_Name varchar(3), Action_Name varchar(4))
insert into test(Menu_Name , Action_Name ) values ( 'A01 ', '新增 ')
insert into test(Menu_Name , Action_Name ) values ( 'A01 ', '修改 ' )
insert into test(Menu_Name , Action_Name ) values ( 'A01 ', '刪除 ')
insert into test(Menu_Name , Action_Name ) values ( 'A01 ', '審核 ')
insert into test(Menu_Name , Action_Name )values ( &