Tsql SQL中的透视表(使用Groupby)

Tsql SQL中的透视表(使用Groupby),tsql,Tsql,我的桌子结构如下 Customer_ID Sequence Comment_Code Comment 1 10 0 a 1 11 1 b 1 12 1 c 1 13 1 d 2 20

我的桌子结构如下

Customer_ID Sequence    Comment_Code    Comment
1           10              0             a
1           11              1             b
1           12              1             c
1           13              1             d
2           20              0             x
2           21              1             y
3           100             0             m
3           101             1             n
3           102             1             o
1           52              0             t
1           53              1             y
1           54              1             u
序号是表中的唯一编号

我希望SQL中的输出如下所示

Customer_ID     Sequence    
1               abcd
2               xy
3               mno
1               tyu
谁能帮我一下吗。如果需要,我可以提供更多细节


这看起来像是一个简单的缺口/孤岛问题

-- Sample Data
DECLARE @table TABLE
(
  Customer_ID  INT,
  [Sequence]   INT,
  Comment_Code INT,
  Comment      CHAR(1)
);
INSERT @table
(
    Customer_ID,
    [Sequence],
    Comment_Code,
    Comment
)
VALUES (1,10 ,0,'a'),(1,11 ,1,'b'),(1,12 ,1,'c'),(1,13 ,1,'d'),(2,20 ,0,'x'),(2,21 ,1,'y'),
       (3,100,0,'m'),(3,101,1,'n'),(3,102,1,'o'),(1,52 ,0,'t'),(1,53 ,1,'y'),(1,54 ,1,'u');


-- Solution
WITH groups AS
(
  SELECT
    t.Customer_ID, 
    Grouper = [Sequence] - DENSE_RANK() OVER (ORDER BY [Sequence]),
    t.Comment
  FROM @table AS t
)
SELECT 
  g.Customer_ID,
  [Sequence] = 
  (
    SELECT g2.Comment+''
    FROM   groups AS g2
    WHERE  g.Customer_ID = g2.Customer_ID AND g.Grouper = g2.Grouper
    FOR XML PATH('')
  )
FROM groups AS g
GROUP BY g.Customer_ID, g.Grouper;
返回:

Customer_ID Sequence
----------- ----------
1           abcd
1           tyu
2           xy
3           mno

注释代码“0”是否意味着它将是序列中的第一个字符?下面的答案是否有帮助?@GenWan yes。注释代码“0”表示它将是序列中的第一个字符。我们必须在注释字段中将所有内容分组,直到注释代码中出现下一个0。非常感谢,Alan。这对我帮助很大。我是SQL新手,所以我仍然在学习新东西。我还有最后一个问题,如果顺序不对,我们该怎么办。我的意思是中间缺少一个数字(对于客户1-10,11,15,16),但我们仍然希望将注释中的所有内容分组,直到注释代码中出现“0”。