回答

收藏

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

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

这是当前结果,可以每天更改
! r( t" z, n- X% l0 A: t. V    (int)   (nvarchar)
- n0 ^! `" B+ C! b( w8 A    Number   Grade, w4 N. e, n# h, x. ]. f
    --------------% y+ q1 X/ D+ _4 J4 k
         1       a- M' G& H! A6 y  C! @4 l/ t9 ]9 e
         1       c
" X. B2 W4 V/ K2 [         2       a
* o$ A: T3 y) k7 ^         2       b
4 H( s: n' ]# }3 U2 o8 ~+ E         2       c+ K% g1 b* L5 ]% T" m. X7 f
         3       b: y- t! P: p' U" [1 a
         3       a; j  ]: X# R% A- j( s  c3 _4 r
我需要帮助的是在下面实现此结果。" z- G, {9 H. D2 Q
Number      Grade
" L4 B" `6 h' u) q" q& q# o-----------------
4 |9 P( v+ q( l2 k( l4 b% @9 d     1       a, c
' p. G) V. Y; n     2    a, b, c9 W, D2 Q* T) I& o$ ~0 b. P2 S
     3       b, a+ [- s7 B/ @7 I
                2 g1 M3 `: S4 ], W, l
解决方案:
' C. k) [9 {, i* d6 d8 y2 p2 J$ a                ) ]) I' [3 B1 |+ Q: k, ~

  V2 R' J: A( q1 v# b+ t0 d- [. T* O; g8 d# J
                使用:' i6 T- i% m: V4 ?9 e$ R
declare @t table(Number int, Grade varchar)
' X( I+ h% D( t: ^  \# s7 cinsert @t values(1, 'a'), (1, 'c'), (2, 'a'), (2, 'b'), (2, 'c'),5 F5 o/ b% U! n' a& b
(3, 'b'), (3, 'a'); W: u$ C) M5 N$ |
select t1.Number3 z2 u  ^* I" x9 H7 u9 j
    , stuff((
0 S3 O. [7 F: n) B& ^        select ',' + Grade# ~5 ^4 e1 l% h* ^  b( S% \7 f
        from @t t23 e& z. w( Q, ~& o
        where t2.Number = t1.Number- L/ O. `: u( L3 A3 P# A
        for xml path(''), type8 b$ V8 u. ?& M
    ).value('.', 'varchar(max)'), 1, 1, '') [values]# U: K; t3 c: F9 A8 O, `" b
from @t t1
; t$ B5 ]- e' z$ kgroup by t1.Number
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则