具体代码如下所示:
创建一个函数:
/******************************
将字符串按照某字符(逗号)分隔查询返回为一个临时表
******************************/
CREATE FUNCTION f_SplitStrToTb
(
@totaltr NVARCHAR(MAX),--需要拆分的字符串(如:1,2,3,4)
@totalplit VARCHAR(10) --拆分的符号
)
RETURNS @Table TABLE
(
RetCol VARCHAR(100)
)
AS
BEGIN
DECLARE @index INT
DECLARE @total INT
SET @index = 1
SET @total = 1
WHILE (@index > 0)
BEGIN
SET @index = CHARINDEX(@totalplit, @totaltr, @total)
IF (@index > 0)
BEGIN
INSERT @Table
(
RetCol
)
VALUES
(SUBSTRING(@totaltr, @total, @index - @total))
END
ELSE
BEGIN
INSERT @Table
(
RetCol
)
VALUES
(SUBSTRING(@totaltr, @total, LEN(@totaltr) - @total + 1))
END
SET @total = @index + 1
END
RETURN
END
查询效果如下所示: