如何在SQL中分隔逗号

时间:2014-02-06 03:42:23

标签: sql sql-server

我想要这个数据字段:

MaritalStatus=M;Youngest=[-0.999,0.999];

拆分为:

field name = Maritalstatus , data is M 
Field name = Youngest , Data is [-0.999,0.999]; 

如何编写SQL?

2 个答案:

答案 0 :(得分:0)

对于SUBSTRINGCHARINDEX来说,这有点乐趣,但只有2条信息可以提取:

select SUBSTRING(@string, 
           CHARINDEX('=', @string) + 1, 
           CHARINDEX(';', @string) - CHARINDEX('=', @string) - 1) as Maritalstatus,
       SUBSTRING(@string, 
           CHARINDEX('=', @string, CHARINDEX(';', @string)) + 1, 
           LEN(@string) - CHARINDEX('=', @string, CHARINDEX(';', @string))) as Youngest 

答案 1 :(得分:0)

您可以在SP中使用以下代码或创建用户定义的函数来实现目标

declare @commaSeperatedVal varchar(100)
set @commaSeperatedVal='MaritalStatus=M;Youngest=[-0.999,0.999];'
DECLARE @x XML 
SELECT @x = CAST('<A>'+ REPLACE(@commaSeperatedVal,';','</A><A>')+ '</A>' AS XML)

select 'field name ='+ replace(Tval,'=' , ',data is ') from
(
  SELECT t.value('.', 'varchar(100)') as Tval
  FROM @x.nodes('A') AS x(t)
) tbl
where tbl.Tval<>''