想实现把字符串合并的聚合函数。关键是在视图中不能定义变量(在函数中可以定义变量)。不能进行复杂的多语句操作。

但也有解决方案 见: http://www.cnblogs.com/yiyanxiyin/archive/2008/09/28/1230524.html

 

一条语句出结果,挺费劲,我的实现。

 

CREATE TABLE [dbo].[PowerAction](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Action] [varchar](50) NULL,
[ControllerID] [int] NULL,
CONSTRAINT [PK_RoleAction] PRIMARY KEY CLUSTERED
(
[ID] ASC
)
ON [PRIMARY]
)
ON [PRIMARY]

GO


CREATE TABLE [dbo].[PowerButton](
[ID] [int] IDENTITY(1,1) NOT NULL,
[ActionID] [int] NULL,
[Button] [varchar](50) NULL,
CONSTRAINT [PK_RoleButton] PRIMARY KEY CLUSTERED
(
[ID] ASC
)
ON [PRIMARY]
)
ON [PRIMARY]

GO

SELECT *
FROM(
select distinct a.ID ,a.[Action]
from PowerAction as a
left join PowerButton as b on (b.actionid = a.id)

) t
OUTER APPLY(
SELECT
[Button]= STUFF(REPLACE(REPLACE(
(
select isnull(b.Button,'') as Button
from PowerAction as a
left join PowerButton as b on (b.actionid = a.id)

WHERE a.id = t.id
FOR XML AUTO
),
'<a Button="', ','), '"/>', ''), 1, 1, '')
)N

 

表值函数定义方法:

create function test(@i int )
returns @retVal table(id int ,val varchar(3000) )
as
begin
select * from @retVal ;
return ;
end ;

 

 

 

相关文章:

  • 2022-12-23
  • 2021-10-05
  • 2021-07-05
  • 2021-12-18
  • 2022-12-23
  • 2021-08-23
  • 2021-09-07
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-05-15
  • 2021-06-03
  • 2021-06-03
  • 2021-06-24
  • 2022-12-23
  • 2021-10-21
相关资源
相似解决方案