cte 或者with语句的查询结果 如何在自定义函数中返回

sk9979 2014-12-24 10:11:01
USE [HNMESDB]
GO

/****** Object: UserDefinedFunction [dbo].[f_PL_GetSectionID] Script Date: 2014-12-24 9:04:18 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

create FUNCTION [dbo].f_PL_GetSectionID(@father_id varchar(36))
RETURNS varchar(8000)
AS
BEGIN
DECLARE @str varchar(8000)
SET @str = ''

with subqry(equipment_id,FATHER_ID,level) as (
select equipment_id,FATHER_ID,1 as level from V_APS_EQUIPMENT_TEMP where equipment_id=@father_id
union all
select a.equipment_id,a.FATHER_ID,level+1
from V_APS_EQUIPMENT_TEMP as a,subqry
where a.equipment_id = subqry.FATHER_ID
)
-- @str= SELECT equipment_id+'|' FROM subqry ORDER BY LEVEL desc FOR XML PATH('')

SELECT equipment_id+'|' FROM subqry ORDER BY LEVEL desc FOR XML PATH('')
RETURN @str
--STUFF(@str, 1, 1, '')
END
GO


...全文
80 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sk9979 2014-12-24
  • 打赏
  • 举报
回复
不知道如何返回SELECT equipment_id+'|' FROM subqry ORDER BY LEVEL desc FOR XML PATH('') 这个拼接后的字符串结果
Tiger_Zhao 2014-12-24
  • 打赏
  • 举报
回复
;with subqry(equipment_id,FATHER_ID,level) as (
...
)
,t (str) as (
SELECT equipment_id+'|' FROM subqry ORDER BY LEVEL desc FOR XML PATH('')
)
SELECT @str = str FROM t
RETURN @str

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧