1、sql对字符串的处理能力比较弱,比如我要循环遍历象1,2,3,4,5这样的字符串,如果用数组的话,遍历很简单,但是T-sql不支持数组
2、自己来实现
|
( @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字符串拆分所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)