亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

實現SQL Server中的切割字符串SplitString函數

系統 2202 0

  有時我們要用到批量操作時都會對字符串進行拆分,可是SQL Server中卻沒有自帶Split函數,所以要自己來實現了。沒什么好說的,需要的朋友直接拿去用吧

?

      
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


/*
by kudychen 2011-9-28
*/
CREATE function [ dbo ] . [ SplitString ]
(
@Input nvarchar ( max ), -- input string to be separated
@Separator nvarchar ( max ) = ' , ' , -- a string that delimit the substrings in the input string
@RemoveEmptyEntries bit = 1 -- the return value does not include array elements that contain an empty string
)
returns @TABLE table
(
[ Id ] int identity ( 1 , 1 ),
[ Value ] nvarchar ( max )
)
as
begin
declare @Index int , @Entry nvarchar ( max )
set @Index = charindex ( @Separator , @Input )

while ( @Index > 0 )
begin
set @Entry = ltrim ( rtrim ( substring ( @Input , 1 , @Index - 1 )))

if ( @RemoveEmptyEntries = 0 ) or ( @RemoveEmptyEntries = 1 and @Entry <> '' )
begin
insert into @TABLE ( [ Value ] ) Values ( @Entry )
end

set @Input = substring ( @Input , @Index + datalength ( @Separator ) / 2 , len ( @Input ))
set @Index = charindex ( @Separator , @Input )
end

set @Entry = ltrim ( rtrim ( @Input ))
if ( @RemoveEmptyEntries = 0 ) or ( @RemoveEmptyEntries = 1 and @Entry <> '' )
begin
insert into @TABLE ( [ Value ] ) Values ( @Entry )
end

return
end

?

如何使用:

      
        declare
      
      
        @str1
      
      
        varchar
      
      (
      
        max
      
      ), 
      
        @str2
      
      
        varchar
      
      (
      
        max
      
      ), 
      
        @str3
      
      
        varchar
      
      (
      
        max
      
      )
    
      

set @str1 = ' 1,2,3 '
set @str2 = ' 1###2###3 '
set @str3 = ' 1###2###3### '
      

select [ Value ] from [ dbo ] . [ SplitString ] ( @str1 , ' , ' , 1 )
select [ Value ] from [ dbo ] . [ SplitString ] ( @str2 , ' ### ' , 1 )
select [ Value ] from [ dbo ] . [ SplitString ] ( @str3 , ' ### ' , 0 )

?

執行結果:

實現SQL Server中的切割字符串SplitString函數

?

里面還有個自增的[Id]字段哦,在某些情況下有可能會用上的,例如根據Id來保存排序等等。

?

例如根據某表的ID保存排序:

      
        update
      
       a 
      
        set
      
       a.
      
        [
      
      
        Order
      
      
        ]
      
      
        =
      
      t.
      
        [
      
      
        Id
      
      
        ]
      
      
from [ dbo ] . [ ] as a join [ dbo ] .SplitString( ' 1,2,3 ' , ' , ' , 1 ) as t on a. [ Id ] = t. [ Value ]

?

具體的應用請根據自己的情況來吧:)

?

實現SQL Server中的切割字符串SplitString函數


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 成人欧美视频免费看黄黄 | 国产精品一 | 婷婷在线视频国产综合 | 国产欧美在线观看精品一区二区 | 亚洲色图插插插 | 亚欧洲精品在线视频免费观看 | 快射视频网 | 精品哟啊呦v视频在线观看 精品哟哟国产在线观看 | 激性欧美激情在线播放16页 | 国产精品青草久久 | 久久久毛片免费全部播放 | 久久精品人人做人人爱爱 | 91精品日本久久久久久牛牛 | 黄视频网站观看 | 青青久| 亚洲高清免费 | 伊人久久在线视频 | 久久国产精品女 | 久久经典| 日本护士一级毛片在线播放 | 欧美日韩一二三区免费视频观看 | 天天操天天射天天色 | 91在线免费视频观看 | 99精品视频在线这里只有 | 91福利视频合集 | 奇米影视777777 | 欧美人拘一级毛片 | 色人阁五月 | 91手机在线视频 | 在线观看偷拍视频一区 | 亚洲图片综合区另类图片 | 欧美日在线 | h视频国产 | 离线枕边人在线观看 | 国产日韩精品一区在线不卡 | 特级黄色视频毛片 | 日本亚洲欧洲高清有码在线播放 | 四虎国产在线观看 | 亚洲欧美日韩成人一区在线 | 久久综合激情 | 欧美成人猛男性色生活 |