分割字符串并将其转换为列表是经常用到的一种操作,特别是在与SQL Server和数据库进行操作时。作为一名SQL Server开发人员,本文展示了常见的几种方法来实现字符串分割。
为鸡冠等地区用户提供了全套网页设计制作服务,及鸡冠网站建设行业解决方案。主营业务为做网站、成都网站建设、鸡冠网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
首先,使用循环游标进行循环,然后使用CHARINDEX函数找到分割点,最后将字符串内容保存在一个表或变量中。
例如,在SQL Server中。 使用下面的代码进行循环:
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功能将字符串分割为列表。
成都服务器托管选创新互联,先上架开通再付费。
创新互联(www.cdcxhl.com)专业-网站建设,软件开发老牌服务商!微信小程序开发,APP开发,网站制作,网站营销推广服务众多企业。电话:028-86922220
网站名称:SQL Server:轻松分割字符串变成列表(mssql 逗号分割)
转载注明:http://www.shufengxianlan.com/qtweb/news18/509568.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联