从这样的表格中:
我需要像这样的结果
Declare @Attributes TABLE
(
Varient Varchar(20),
AllAttributes VARCHAR(MAX),
GUID Varchar(50)
)
INSERT INTO @Attributes
select PV.Varient_Name,PVV.Varient_Value,PA.GUID
FROM tblproductattribute PA
INNER JOIN Product_Varients PV ON PV.Id = PA.AttributeID
INNER JOIN Product_Varient_Value PVV ON PVV.Id = PA.AttributeValue
WHERE PA.GUID='2C2E23A5-AF08-4DC0-98A7-035EE6E7A06D' --and PA.AttributeID = 1
Select * from @Attributes
查询:
rename_all
答案 0 :(得分:2)
这可以使用STUFF和FOR XML完成。如果您将来发布ddl和示例数据,那将会更有帮助。我这次为你做了这件事,所以你可以看到将来应该怎么做。
没有字母" e"在变体中。我建议你在表格中改变它,否则你将永远拼错它。
declare @Something table
(
Variant varchar(10)
, AllAttributes varchar(10)
, GUID uniqueidentifier
)
declare @MyGuid uniqueidentifier = newid()
insert @Something values
('color', 'red', @MyGuid)
, ('color', 'Blue', @MyGuid)
, ('size', '34', @MyGuid)
select Variant
, STUFF((select ',' + s2.AllAttributes
from @Something s2
where s2.GUID = s.GUID
and s2.Variant = s.Variant
for XML PATH('')), 1,1 , '') as Details
from @Something s
group by s.Variant
, s.GUID