【发布时间】:2014-10-31 05:50:53
【问题描述】:
你好我的表,其中每一行都有如下数据:
0150566115,"HEALTH 401K","IC,ON","ICON HEALTH 401K",,,1,08/21/2014
我想要的是删除双引号“”之间的每个逗号(,)。然后用逗号(,)分割字符串的其余部分
我不想检查每一个字符设置标志的开始和结束双引号。
我可以实现某种正则表达式吗?
有简单的方法吗?
到目前为止,我尝试的只是以逗号(,)为基础拆分字符串,但它适用于单个双引号块。
Declare @Query nvarchar(max)
Set @Query= 'Item1,Item2,"Item,Demo,3",New'
Declare @start int, @len int
SELECT @start = PATINDEX('%"%"%', @Query)+1
print @start
select @len=CHARINDEX('"', SUBSTRING(@Query, @start, LEN(@Query)))-1
select
SUBSTRING(@Query, 1, @start - 2) +
REPLACE((SUBSTRING(@Query, @start, @len)), ',', '') +
SUBSTRING(@Query, @start + @len + 1, LEN(@Query))
【问题讨论】:
标签: sql sql-server database tsql sql-server-2012