第一步创建函数:
CREATE FUNCTION [dbo].[GetInStr]
(@SourceStr VARCHAR(2000))--源字符串
RETURNS @table TABLE(list VARCHAR(50) )
AS
BEGIN
IF CHARINDEX(',',@sourcestr)>0
BEGIN
DECLARE @i INT
DECLARE @n INT
SET @i=1
WHILE CHARINDEX(',',@sourcestr,@i)>0
BEGIN
SET @n=CHARINDEX(',',@sourcestr,@i)
INSERT INTO @table VALUES(SUBSTRING(@sourcestr,@i, @n-@i) )
SET @i=@n+1
END
INSERT INTO @table VALUES(SUBSTRING(@sourcestr,@i,LEN(@sourcestr)-@i+1))
END ELSE INSERT INTO @table VALUES(@sourcestr)
DELETE FROM @table WHERE ISNULL(list,'') = ''
RETURN
END
第二步 :
SELECT * FROM [dbo].[GetInStr] ('46,47,137,156,202,203,204,205,206,431,434,502')
执行结果:

posted on
浙公网安备 33010602011771号