sql 用函数实现逗号分隔查询

    xiaoxiao2022-07-07  152

     

    CREATE FUNCTION func_splitstringback ( @str NVARCHAR(MAX) , --varchar(max):文本,代替text 大值数据类型最多可以存储2^30-1个字节的数据。 @split VARCHAR(10) ) RETURNS @t TABLE ( c1 VARCHAR(100) ) ---返回一个t 表一个字段 C1 AS BEGIN DECLARE @i INT DECLARE @s INT SET @i = 1 SET @s = 1 WHILE ( @i > 0 ) --循环 BEGIN SET @i = CHARINDEX(@split, @str, @s) ---从第一个位置获取,@str中包含@split参数的位置:(eg:charindex(',','1,23',1) IF ( @i > 0 ) BEGIN INSERT @t ( c1 ) VALUES ( SUBSTRING(@str, @s, @i - @s) ) --eg:SELECT SUBSTRING('1111,22225,3333', 1, 5 - 1) ==1111 END ELSE BEGIN INSERT @t ( c1 ) VALUES ( SUBSTRING(@str, @s, LEN(@str) - @s + 1) ) END SET @s = @i + 1 END RETURN ---返回 END GO

    eg:

     

    最新回复(0)