sqlserver字符串拆分

sqlserver字符串拆分,第1张

概述1、SQL对字符串的处理能力比较弱,比如我要循环遍历象1,2,3,4,5这样的字符串,如果用数组的话,遍历很简单,但是T-SQL不支持数组 2、自己来实现 CREATE FUNCTION udf_Split ( @Words nvarchar( MAX )/*原始字串*/ , @splitStr varchar (50) /*分割字元*/ ) RETURNS @Result_Table TABLE

1、sql对字符串的处理能力比较弱,比如我要循环遍历象1,2,3,4,5这样的字符串,如果用数组的话,遍历很简单,但是T-sql不支持数组

2、自己来实现

CREATE FUNCTION udf_Split
( @Words nvarchar( MAX )/*原始字串*/
,@splitStr varchar (50) /*分割字元*/
)
RETURNS @Result_table table
       (
         [word] nvarchar( max ) NulL /*定义一个word列*/
       )
BEGIN
    Declare @TempStr nvarchar( MAX )
    /*@Words有包含分割字元就一直执行回圈*/
    WHILE (CHARINDEX(@splitStr,@Words)>0)
    BEGIN
    /*取出最前面的word*/
        Set @TempStr= SUBSTRING (@Words,1,CHARINDEX(@splitStr,@Words)-1)
        Insert into @Result_table (word) Values ??(@TempStr)
        /*把最前面的word加上分割字元后,取代为空字串再指派回给@Words*/
        Set @Words = REPLACE (@Words,@TempStr+@splitStr,'' )
    END /* End While*/
    /*@Words有值但没有分割字元,表示此为最后一个word*/
    IF(LEN(RTRIM(LTRIM(@Words)))>0 And CHARINDEX(@splitStr,RTRIM(LTRIM(@Words)))=0) 
    Begin
        Set @TempStr=@Words /*取出word*/
         
        Insert into @Result_table (word) Values ??(@TempStr)
         
    End /* End IF*/
 
   RETURN /*回传table 变数*/
END

3、调用

Select from dbo.udf_Split(N 'Hello,World,Shadow,你好' ',' )

总结

以上是内存溢出为你收集整理的sqlserver字符串拆分全部内容,希望文章能够帮你解决sqlserver字符串拆分所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1171449.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存