新聞中心
分割字符串并將其轉(zhuǎn)換為列表是經(jīng)常用到的一種操作,特別是在與SQL Server和數(shù)據(jù)庫進行操作時。作為一名SQL Server開發(fā)人員,本文展示了常見的幾種方法來實現(xiàn)字符串分割。

為雞冠等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及雞冠網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為做網(wǎng)站、成都網(wǎng)站建設(shè)、雞冠網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
首先,使用循環(huán)游標(biāo)進行循環(huán),然后使用CHARINDEX函數(shù)找到分割點,最后將字符串內(nèi)容保存在一個表或變量中。
例如,在SQL Server中。 使用下面的代碼進行循環(huán):
declare @string varchar(500),
@list varchar(500),
@i int,
@j int
set @string = 'A;B;C;D;E;F'
set @list = ''
set @i = 1
WHILE @i
BEGIN
-- find position of next semicolon
SET @j = CHARINDEX(';', @string, @i )
-- save content into list
IF @j > 0
BEGIN
SET @list = @list + Stuff(@string, @i, @j-@i, '') + ','
END
SET @i = @j + 1
END
SELECT left(@list, len(@list)-1)
另一種變體方法是使用表值函數(shù)。表值函數(shù)是一種特殊的可以接受多個參數(shù)并返回一個表而不是一個值的SQL函數(shù)。表值函數(shù)已經(jīng)從SQL Server 2008中引入,并從SQL Server 2012中推出。
下面的代碼演示了如何使用表值函數(shù)將字符串分割為列表:
DECLARE @String varchar(500)
DECLARE @Delimiter char(1)
SET @String = 'A;B;C;D;E;F'
SET @Delimiter = ';'
SELECT Item
FROM dbo.Split(@String, @Delimiter)
同樣,也可以使用XML來分割字符串到列表。 使用XML允許更快更簡單的分割。 例如:
DECLARE @String varchar(500)
SET @String = 'A;B;C;D;E;F'
SELECT x.value('.','varchar(50)')
FROM
(
SELECT cast('' + replace(@String,';', '') + '' as xml) as String
) as T1
CROSS APPLY String.nodes('/X') as T2(x)
總之,有很多不同的方法可以實現(xiàn)字符串分割。 上面的例子已經(jīng)展示了如何使用游標(biāo),表值函數(shù)和XML功能將字符串分割為列表。
成都服務(wù)器托管選創(chuàng)新互聯(lián),先上架開通再付費。
創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)-網(wǎng)站建設(shè),軟件開發(fā)老牌服務(wù)商!微信小程序開發(fā),APP開發(fā),網(wǎng)站制作,網(wǎng)站營銷推廣服務(wù)眾多企業(yè)。電話:028-86922220
文章題目:SQL Server:輕松分割字符串變成列表(mssql 逗號分割)
文章位置:http://m.5511xx.com/article/cdohdoi.html


咨詢
建站咨詢
