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

為雞冠等地區(qū)用戶提供了全套網頁設計制作服務,及雞冠網站建設行業(yè)解決方案。主營業(yè)務為做網站、成都網站建設、雞冠網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
首先,使用循環(huán)游標進行循環(huán),然后使用CHARINDEX函數找到分割點,最后將字符串內容保存在一個表或變量中。
例如,在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)
另一種變體方法是使用表值函數。表值函數是一種特殊的可以接受多個參數并返回一個表而不是一個值的SQL函數。表值函數已經從SQL Server 2008中引入,并從SQL Server 2012中推出。
下面的代碼演示了如何使用表值函數將字符串分割為列表:
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)
總之,有很多不同的方法可以實現字符串分割。 上面的例子已經展示了如何使用游標,表值函數和XML功能將字符串分割為列表。
成都服務器托管選創(chuàng)新互聯,先上架開通再付費。
創(chuàng)新互聯(www.cdcxhl.com)專業(yè)-網站建設,軟件開發(fā)老牌服務商!微信小程序開發(fā),APP開發(fā),網站制作,網站營銷推廣服務眾多企業(yè)。電話:028-86922220
當前文章:SQL Server:輕松分割字符串變成列表(mssql 逗號分割)
本文URL:http://fisionsoft.com.cn/article/cdohdoi.html


咨詢
建站咨詢
