在sql server 2008中拆分多个字符的字符串? [英] Split string with multiple characters in sql server 2008?

查看:175
本文介绍了在sql server 2008中拆分多个字符的字符串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,



我在sql中有一个字符串变量,我想分割多个字符分隔符。



  DECLARE   @ STR  =  VARCHAR  100 
SET @ STR = ' ABC *** PQR *** XYZ ***第一个名字***手机号码



我希望得到这样的结果: -



项目:

ABC

PQR

XYZ

第一名

MOBILE NO。



请帮助....



提前致谢...

解决方案

这是一个糟糕的主意 - SQL不擅长字符串操作,应该在您的演示代码中完成,或者更好地存储在数据库中作为单独的字段s开头。



但有可能:将列中的逗号分隔数据转换为行以供选择 [ ^ ]为单个逗号执行此操作,但修改为三个逗号非常简单明星。


你好,



试试这个



< pre lang =sql> DECLARE @ STR VARCHAR 100
SET @ STR = ' ABC *** PQR *** XYZ ***第一名*** MOBILE NO 。'

; cte as

选择 CAST(' < i>' + replace( @ STR ' ***'' < / i> < i>')+ ' < / i>' as XML) as word


选择 xivalue(' 。'' nvarchar(100)' as
来自 cte
cross apply word.nodes (' / i' as X(i)





输出



项目
ABC
PQR
XYZ
FIRST NAME
MOBILE NO。


Hi All,

I have a string variable in sql and i want to split with multiple characters Delimiter .

DECLARE @STR = VARCHAR(100)
SET @STR = 'ABC***PQR***XYZ***FIRST NAME***MOBILE NO.'


and i want to result like this:-

Items:
ABC
PQR
XYZ
FIRST NAME
MOBILE NO.

Please Help....

Thanks in advance...

解决方案

It's a poor idea - SQL is not good at string manipulations, that kind ofthing should be done in your presentation code, or better stored in your DB as separate fields to start with.

But it is possible: Converting comma separated data in a column to rows for selection[^] does it for a single comma, but it's pretty trivial to modify for three stars.


Hi,

Try this

DECLARE @STR  VARCHAR(100)
SET @STR = 'ABC***PQR***XYZ***FIRST NAME***MOBILE NO.'

;with cte as
(
    Select CAST( '<i>'+replace (@STR ,'***','</i><i>')+'</i>'  as XML) as word

)
Select x.i.value ('.','nvarchar(100)')  as Items
from cte
cross apply word.nodes('/i') as X(i)



output

Items
ABC
PQR
XYZ
FIRST NAME
MOBILE NO.


这篇关于在sql server 2008中拆分多个字符的字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆