分解函数:
create FUNCTION [dbo].[f_splitSTR](
@s varchar(8000), --待分拆的字符串@split varchar(10) --数据分隔符
)RETURNS @re TABLE(col varchar(100))
AS
BEGIN
DECLARE @splitlen int
SET @splitlen=LEN(@split+'a')-2
WHILE CHARINDEX(@split,@s)>0
BEGIN
INSERT @re VALUES(LEFT(@s,CHARINDEX(@split,@s)-1))
SET @s=STUFF(@s,1,CHARINDEX(@split,@s)+@splitlen,'')
END
INSERT @re VALUES(@s)
RETURN
END
GO
存储过程中用于 in 查询:
select @count=COUNT(GoodsId) from huo.Goods WITH(NOLOCK) where IsFlag=0 and IsShangJia=1 and Type=1 and GongHuoShangId=@GongHuoShangId and CHARINDEX(''+@Str+'',GoodsName)>0 and GoodsId not in (select col from f_splitSTR(@GoodsId,',')) @GoodsId为待分解的字符串,例如:1,2.3