微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在同一行中以“棒”分隔的同一功能名称显示不同的功能值?

如何解决如何在同一行中以“棒”分隔的同一功能名称显示不同的功能值?

我使用sql Server 2012,但遇到一个问题:我无法在一行结果中获得所有不同的值功能,如果它们有多个差异,则用粘性分隔。

如果只有一个与众不同,那就不用棍子了。

我实际上需要显示C部分和X部分的特征值,其中C的特征值不等于X且都不等于Null。

如果有多个差异,它将显示在用棍子隔开的一行上。

那我该怎么办?

process.MoveWindow()

最终结果:

create table #replace
(
    PartIdc int,PartIdx int,)

insert into #replace (PartIdc,PartIdx)
values (1211,1300),(2000,2200),(3000,3100),(4150,4200) 

create table #FeatureNameandValues
(
    PartId int,FeatueName nvarchar(20),FeaatureValue int
)

insert into #FeatureNameandValues (PartId,FeatueName,FeaatureValue)
values (1211,'Weight',5),'Tall',20),70),190),(1211,80),(1300,10),(3100,'Size',150),(4200,130),20)

display different Feature Value for Same Feature

附加的文件说明:

http://www.mediafire.com/file/mxyr8wr9k98za7o/ExplainReport.xlsx/file

解决方法

您可以使用以下内容进行操作

;With cte As
 (Select f1.PartId,f1.FeatueName,f1.FeatueName + ' (' + Cast(f1.FeaatureValue As varchar(10)) + '-' + Cast(f2.FeaatureValue As varchar(10)) + ')' As ValueRange
 From #FeatureNameandValues f1
 Inner Join #replace r On f1.PartId = r.PartIdc
 Inner Join #FeatureNameandValues f2 On f2.PartId = r.PartIdx And f1.FeatueName = f2.FeatueName)
 Select Stuff(
     (Select ' | ' + ValueRange From cte Order By PartId,FeatueName 
     For XML Path(''),Type)
     .value('text()[1]','varchar(max)'),1,3,'');

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。