我有一个现有的视图,它基于具有相同product_id的聚合选项名称,以以下格式返回数据。视图名称为"vProdOptions“
option_name product_id
XSMALL (2-6) 17854
SMALL (6-10) 17854
MEDIUM (10-14) 17854
LARGE 18232
如何在如下格式的聚合视图中返回此数据?
OPTIONS_AVAIL Product_ID
XSMALL (2-6), SMALL (6-10), MEDIUM (10-14) 127182
SMALL (6-10), MEDIUM (10-14) 166382
我使用的是MS SQL2K5。
我在这里根据这两个问题的评论创建一个新问题。我意识到我需要的是一处风景。
发布于 2010-02-11 04:31:37
您可以选择不同的产品,并在计算选项字符串的函数上对它们执行cross apply
操作:
select *
from (select distinct product_id from @t) a
cross apply (
select option_name + ', ' as [text()]
from @t b
where a.product_id = b.product_id
for xml path('')
) c ( Options )
-->
product_id Options
17854 XSMALL (2-6), SMALL (6-10), MEDIUM (10-14),
18232 LARGE,
创建示例的代码:
declare @t table (option_name varchar(30), product_id int)
insert @t select 'XSMALL (2-6)', 17854
union all select 'SMALL (6-10)', 17854
union all select 'MEDIUM (10-14)', 17854
union all select 'LARGE', 18232
发布于 2010-02-11 04:24:23
在SQL中,旋转并不是一种非常有效的方法。就我个人而言,我不会去管你的视图,而是让数据在整个应用程序中旋转。
https://stackoverflow.com/questions/2240057
复制相似问题