sqlServer 自定义分割函数以及应用


-- 一个字段里面的值是 RoleInfo表的Id  '1,2,3,4,5' 如何根据 该字段的值查询到  RoleInfo 的名称
select stuff(  (select ','+RloeName from RoleInfo where RoleSid in (select * from f_splitstring('1,2,3',',')) for xml path('')),1,1,'')

-- 字符串转换为DataTable ,以方便查询用
create Function StrToTable(@str varchar(1000),@splitStr nvarchar(50)) 
Returns @tableName Table 

str2table varchar(50) 

As 

Begin 
if(LEN(@splitStr) =0)
    begin 
     set @splitStr = ','
    end 
set @str = @str+@splitStr
Declare @insertStr varchar(50) --截取后的第一个字符串 
Declare @newstr varchar(1000) --截取第一个字符串后剩余的字符串 
set @insertStr = left(@str,charindex(@splitStr,@str)-1) 
set @newstr = stuff(@str,1,charindex(@splitStr,@str),'') 
Insert @tableName Values(@insertStr) 
while(len(@newstr)>0) 
begin 
set @insertStr = left(@newstr,charindex(@splitStr,@newstr)-1) 
Insert @tableName Values(@insertStr) 
set @newstr = stuff(@newstr,1,charindex(@splitStr,@newstr),'') 
end 
Return 
End

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL Server分割函数是一种用于将字符串按照指定分隔符分割成多个子字符串的函数。这种函数通常用于处理包含多个值的字符串,例如将多个姓名通过逗号分隔的字符串分割成独立的姓名。 在SQL Server中,可以使用内置的字符串分割函数如STRING_SPLIT()或自定义函数来实现字符串分割。STRING_SPLIT()函数是SQL Server 2016及更高版本的内置函数,它接收两个参数,第一个参数是要分割的字符串,第二个参数是分隔符。函数返回一个表,其中包含原始字符串中的各个子字符串作为行的值。 例如,如果有一个包含多个姓名的字符串'John,Smith,Mary',可以使用以下代码将其分割成多个子字符串: ```sql SELECT value FROM STRING_SPLIT('John,Smith,Mary', ','); ``` 上述代码将返回一个结果集,包含三个行,分别是'John'、'Smith'和'Mary'。 如果使用较早版本的SQL Server,可以编写自定义的字符串分割函数。这种函数通常使用循环或递归的方式,将字符串逐个字符遍历,当遇到分隔符时,将之前累积的字符作为一个子字符串,将其添加到结果集中。具体实现方式可以根据需求和个人喜好来选择。 总而言之,SQL Server分割函数是一种方便的方法,可以将字符串按照指定的分隔符分割成多个子字符串。通过使用内置的STRING_SPLIT()函数自定义函数,可以轻松地实现字符串的分割操作,从而方便地进行后续的数据处理和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值