这应该是诀窍。将字符串拆分成行,然后选择不同的值。如果您还需要该String
列,只需在 上加入您的表id
。
declare @tbl as table (
id int
,string varchar(25)
)
insert into @tbl values (1, 'A#B#C')
insert into @tbl values (1, 'A#B#C')
insert into @tbl values (1, 'A#B#C')
insert into @tbl values (2, 'K#L#X#W#I')
insert into @tbl values (2, 'K#L#X#W#I')
insert into @tbl values (2, 'K#L#X#W#I')
insert into @tbl values (2, 'K#L#X#W#I')
insert into @tbl values (3, 'G')
SELECT DISTINCT [Id], Split.a.value('.', 'VARCHAR(5)') AS [Cut]
FROM (
SELECT [Id], CAST('<M>' + REPLACE([String], '#', '</M><M>') + '</M>' AS XML) AS [String]
FROM @tbl
) AS A CROSS APPLY [String].nodes ('/M') AS Split(a);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句