我有一个表,其中每一行都有如下数据:
0150566115,"HEALTH 401K","IC,ON","ICON HEALTH 401K",,,1,08/21/2014
Run Code Online (Sandbox Code Playgroud)
我想要的是删除,
包含在双引号“”之间的每个逗号 ( )。然后用逗号 ( ,
)分割字符串的其余部分
我不想检查双引号开始和结束的每个字符设置标志。
我可以实现某种正则表达式吗?
有没有简单的方法?
到目前为止,我所尝试的只是根据逗号 ( ,
)拆分字符串,但它也在拆分引号内的值。
这是为了达到目的:如何在完整的表中实现这一点(目前,如果我只有一个双引号块实例,它就可以工作)?
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))
Run Code Online (Sandbox Code Playgroud)
这是我用来分割的函数
ALTER FUNCTION [dbo].[fnSplit](
@sInputList VARCHAR(8000) -- List of …
Run Code Online (Sandbox Code Playgroud)