sql server 字符串拆分

最近项目调取存储的时候直接传入string 作为in的查询范围,结果报错了,深思之后才发现,数据库对于传进来的String,并不是我们想的直接可以作为参数,而是作为一个整体,而in是需要一个类似array或者list的参数,为此,需要一个拆分string的sql 函数,还好之前的前辈留下了可以用的,稍微修改一下就可以了,下面来看看这个函数

 1 FUNCTION f_split
 2 (    
 3     -- Add the parameters for the function here
 4     @SourceStr VARCHAR(max),@SeprateStr VARCHAR(10)
 5 )
 6 RETURNS  @temp TABLE (a VARCHAR(1000)) 
 7 AS
 8 BEGIN
 9     DECLARE @i INT
10     SET @SourceStr = RTRIM(LTRIM(@SourceStr))--去除空格
11     SET @i=CHARINDEX(@SeprateStr,@SourceStr)
12     WHILE @i>=1
13     BEGIN 
14     INSERT @temp
15             ( a )
16     VALUES  ( LEFT(@SourceStr,@i-1)  -- a - varchar(1000)
17               )
18     SET @SourceStr = SUBSTRING(@SourceStr,@i+1,LEN(@SourceStr)-@i)
19     SET @i=CHARINDEX(@SeprateStr,@SourceStr)
20     END
21     RETURN
22 END
23 GO

应该写的很清晰了,就不细说了,欢迎大家指导

猜你喜欢

转载自www.cnblogs.com/scyitgz/p/9143292.html