![](/img/trans.png)
[英]I need to figure out a way to display this on my. I have 2 columns, i Need to be able to display
[英]I have two columns with multiple values that I need to parse out
我有这样的一张桌子:
Make Model Year
----------------------------------------------------
Toyota Corolla, Camry, Avalon 2009, 2006, 2011
我希望它是以下内容:
Make Model Year
------------------------------
Toyota Corolla 2009
Toyota Camry 2006
Toyota Avalon 2011
从本质上讲,我希望将两列分开,并按其列出的顺序相互关联。
返回序列的解析函数将在这里有所帮助
例
Select A.Make
,B.*
From YourTable A
Cross Apply (
Select Model=B1.RetVal
,Year =B2.RetVal
From [dbo].[tvf-Str-Parse](A.Model,',') B1
Join [dbo].[tvf-Str-Parse](A.Year,',') B2
on B1.RetSeq=B2.RetSeq
) B
返回
Make Model Year
Toyota Corolla 2009
Toyota Camry 2006
Toyota Avalon 2011
UDF(如果有兴趣)
CREATE FUNCTION [dbo].[tvf-Str-Parse] (@String varchar(max),@Delimiter varchar(10))
Returns Table
As
Return (
Select RetSeq = Row_Number() over (Order By (Select null))
,RetVal = LTrim(RTrim(B.i.value('(./text())[1]', 'varchar(max)')))
From (Select x = Cast('<x>' + replace((Select replace(@String,@Delimiter,'§§Split§§') as [*] For XML Path('')),'§§Split§§','</x><x>')+'</x>' as xml).query('.')) as A
Cross Apply x.nodes('x') AS B(i)
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.