因此,我有与产品类型不同的产品相关的规格表。我需要一个存储过程,它将在规范表(或所述规范表的结果集)中的每个列(用于站点导航代码)中返回单行唯一逗号分隔值。
我希望这是有道理的。
感谢大家到目前为止的回复。我会更详细地解释......
每个规范表都有不同数量的列(以及行)。让我们说其中一个有50,000行和一个制造商专栏。现在让我们假设这里还有5家独特的制造商。我们还假设同一个表也有一个颜色列,在所有50,000行中共享7种颜色。
我的(当前虚构的)存储过程应该返回一行,其中包含以下列...
我打算使用此结果来构建我的网站导航。
答案 0 :(得分:1)
假设我已经理解:
declare @productTypes table (Id int, Name nvarchar(32))
declare @products table (Id bigint not null identity(1,1), ProductType int, ProductName nvarchar(32))
insert @productTypes (Id, Name)
select 1, 'Food'
union
select 2, 'Drink'
insert @products (ProductType, ProductName)
select 1, 'Chips'
union
select 1, 'Fish'
union
select 2, 'Guinness'
union
select 2, 'Water'
union
select 2, 'Pan Galactic Gargle Blaster'
select pt.Name
, STUFF
(
(
Select ',' + a.ProductName
from @products a
where a.ProductType = pt.Id
FOR XML PATH('')),1,1,''
) ProductsOfType
from @productTypes pt
SQL小提琴:http://sqlfiddle.com/#!6/e80ff/1
结果:
Name ProductsOfType
Food Chips,Fish
Drink Guinness,Pan Galactic Gargle Blaster,Water