写了一个获取符号间隔字符串的函数,原先代码如下
CREATE FUNCTION funGetSubStr ( ?-- Add the parameters for the function here
?@StrParams nvarchar(4000), ?@char char(1)=N'1' ) RETURNS nvarchar(4000) AS BEGIN ?declare? --@str? varchar(300), ?@id? varchar(3000), ?@m? int, ?@n? int? ?--set? @str='a,b,c,d,e'? ?--set? @m=CHARINDEX(',',@str)? ?--set? @n=1? ?--WHILE? @m>0? ?--BEGIN? ?--??? set? @id=substring(@str,@n,@m-@n)? ?--??? print? @id? ?--??? set? @n=@m+1? ?--??? set? @m=CHARINDEX(',@str,@n)? ?--END ?set @m=charindex(@char,@strparams) ?set @n=1 ?if @m>0 ?begin ??set @id=substring(@strparams,@m,@m-@n)
???return @id
?end ?else ?begin return null
?end END GO
sqlserver提示,函数最后一句必须是return语句,后改为如下
?
-- ================================================ -- Template generated from Template Explorer using: -- Create Scalar Function (New Menu).SQL -- -- Use the Specify Values for Template Parameters -- command (Ctrl-Shift-M) to fill in the parameter -- values below. -- -- This block of comments will not be included in -- the definition of the function. -- ================================================ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author:??<Author,Name> -- Create date: <Create Date,> -- Description:?<Description,> -- ============================================= CREATE FUNCTION funGetSubStr ( ?-- Add the parameters for the function here
?@StrParams nvarchar(4000),@m-@n)
?end ?else ?begin ??set @id=null ?end ???return @id
END GO
?
通过。
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|