sql函数创建错误

jef*_*eff 2 sql sql-server-2005

尝试在SQL2k5中创建此sql函数时出现以下错误.这里有什么想法?它在功能之外运行良好.

现在更新这个工作,但是我必须认识到这需要以视图的形式存在,因为我需要在product_id上进行内部联接,所以这个当前表单只有在我传递产品ID时才有效.有什么想法吗?

消息102,级别15,状态1,过程getoptionlist,第13行')'附近的语法不正确.

CREATE FUNCTION dbo.getoptionlist 
(@ProductID as int)
RETURNs varchar(101) 
AS
BEGIN
declare @Return varchar(101)
 SELECT SUBSTRING(
(SELECT ','  + s.Name + '~0'
FROM vOptions_details s
where product_id=@ProductID
ORDER BY s.Name
FOR XML PATH('')),2,200000) 
)
end
return @return
Run Code Online (Sandbox Code Playgroud)

小智 6

一些问题:
- 括号太多
- return语句应该在"end"之前
- 你需要设置@return变量

CREATE FUNCTION dbo.getoptionlist 
(@ProductID as int)
RETURNs varchar(101) 
AS
BEGIN
declare @Return varchar(101)
 SELECT @return = SUBSTRING(
(SELECT ','  + s.Name + '~0'
FROM vOptions_details s
where product_id=@ProductID
ORDER BY s.Name
FOR XML PATH('')),2,200000) 

return @return
end
Run Code Online (Sandbox Code Playgroud)