如何为此结果编写SQL查询?

Raj*_*mar 2 sql sql-server sql-server-2008

我有这么多很长的数据库,所以我seq_no在逗号中单独使用多个序列存储在单列中使用,但现在我想要在一个列中的所有序列,所以我很困惑如何为此创建此sql结果.

例如:

TABLE STRUCTURE 
SR_NO IS INT ,
SEQ_NO IS VARCHAR(MAX)
SR_NO   SEQ_NO
---------------------------------    
  1     1839073,
  2     1850097,1850098,
  3     1850099,1850100,1850110    
Run Code Online (Sandbox Code Playgroud)

我需要得到这个结果:

SEQ_NO 
--------------
1839073
1850097
1850098
1850099
1850100
1850110 
Run Code Online (Sandbox Code Playgroud)

谢谢!

moh*_*111 5

declare @t table(Id int,seq varchar(100)) 
insert into @t (Id,seq) values (1,'1839073,'),(2,'1839073,1850098,'),(3,'1850099,1850100,1850110 ')



;With Cte as (
SELECT A.Id,  
     Split.a.value('.', 'VARCHAR(100)') AS Seq  
 FROM  
 (
     SELECT Id,  
         CAST ('<M>' + REPLACE(seq, ',', '</M><M>') + '</M>' AS XML) AS Data  
     FROM  @t
 ) AS A CROSS APPLY Data.nodes ('/M') AS Split(a) )

 Select ID,Seq from Cte Where Seq > ''
Run Code Online (Sandbox Code Playgroud)