回答

收藏

将列表汇总为逗号分隔的字符串

技术问答 技术问答 89 人阅读 | 0 人回复 | 2023-09-13

这是当前结果,可以每天更改9 O  m" |  [) L  G" `# R
    (int)   (nvarchar)
9 a* P' B3 X8 Y+ x/ y* L    Number   Grade$ a$ O$ C  [8 k$ p; _4 g% C$ _3 Q5 G7 P
    --------------2 _+ T- h5 B  I. x9 L( z
         1       a
5 @% v8 \6 }& @; r         1       c
. k1 N2 o* `0 e/ j* `4 O         2       a
$ @: X# f  u4 v" z+ k8 J2 w         2       b
$ Z7 v5 M  N% g         2       c
7 m( R1 U$ `! O) [- ^* c         3       b
7 u  w  y$ s' _         3       a; h: l( \6 _* a3 Q# n
我需要帮助的是在下面实现此结果。  d8 I( S; H8 {$ W
Number      Grade" E+ p: d8 x4 j/ ~
-----------------
5 {! {. |, r; z, i1 ?; J     1       a, c* j- [1 ]* I/ {: s
     2    a, b, c0 c* s* g. |" r$ o$ x2 q" C
     3       b, a+ g( @- c. D: }! Z5 e8 d
                ' e# r5 F. j4 }& m/ U+ T
解决方案:. }+ E6 K- W* m, s  c$ m4 U" S
                ) t  q4 J# K. b$ O
2 e4 h" A- a" W- _, u0 E+ n

/ c/ r2 b: J2 m. J                使用:* {6 k- i  |( a( T" p0 j7 b
declare @t table(Number int, Grade varchar)# D3 I$ ~7 u2 ~: ?  @# ^+ c# ?
insert @t values(1, 'a'), (1, 'c'), (2, 'a'), (2, 'b'), (2, 'c'),
4 N& }1 N2 f2 @/ x- F! A(3, 'b'), (3, 'a')
% q; ?' P0 m0 e' H8 y% |select t1.Number
& Y: h( ~% x2 N8 c    , stuff((
- p( V2 M: r2 G4 ^1 y        select ',' + Grade% z2 _$ ?& P8 A  Z5 R. y
        from @t t2, n% u+ x" N& y( Q- n
        where t2.Number = t1.Number3 }- ^  Q9 P" c$ w. M1 J
        for xml path(''), type
) h  `& x: o3 N( ~7 j6 T    ).value('.', 'varchar(max)'), 1, 1, '') [values]) H  S' ~4 s' u+ r( f0 M
from @t t1
) y: g) |: Q* K& Zgroup by t1.Number
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则