代码之家  ›  专栏  ›  技术社区  ›  George Menoutis

是否可以改进查询?:从链接表创建一个字段的组

  •  0
  • George Menoutis  · 技术社区  · 7 年前

    我有一个名为 club_per_clubgroup ,实体 club , clubgroup customer .

    俱乐部组 :

    (club)    (clubgroup)
    fooclub   1
    barclub   2
    fooclub   3
    barclub   3
    

    顾客 表链接到 俱乐部集团 :

    (code)   (clubgroup)
    foolio   1
    barman   2
    wiseman  3
    

    我需要在一个领域为客户准备所有的俱乐部。 这是我已经做过的,而且很有效:

    select * from
    (select distinct customer from club_customer)c
            cross apply(select
                                STUFF(  ( 
                                        select ',' + cc.club 
                                        from club_customer cc
                                        where c.customer=cc.customer
                                        order by cc.club
                                        FOR XML PATH(''), TYPE
                                    ).value('.','nvarchar(max)')
                                ,1,2, '') as clubgroup
                            ) as conctbl
    

    有没有其他更好的选择来达到同样的效果?

    SQL SERVER版本是2008(可能是R2)。

    0 回复  |  直到 7 年前