我有很多长数据库,所以我在逗号中使用 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
我需要得到这个结果:
SEQ_NO
--------------
1839073
1850097
1850098
1850099
1850100
1850110
谢谢!
最佳答案
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 > ''
关于sql - 如何为这个结果编写 SQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29771283/