代码之家  ›  专栏  ›  技术社区  ›  Etienne

不知道要透视的值的SQL透视

  •  0
  • Etienne  · 技术社区  · 6 年前

    下面是我的代码

    Select  FromCity, TicketID 
    From    #Main
    

    FromCity    TicketID 
    London      Ticket4321  
    Miami       Ticket4321
    Singapore   Ticket4321
    Sydney      Ticket1234
    

    我不能用支点,因为我不知道所有城市的名字。

    TicketID    FromCities
    Ticket4321  London/Miami/Singapore
    Ticket1234  Sydney  
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Chanukya Gordon Linoff    6 年前

    而不是使用pivot

    CREATE TABLE Table1
        ([FromCity] varchar(9), [Ticket] varchar(10))
    ;
    
    INSERT INTO Table1
        ([FromCity], [Ticket])
    VALUES
        ('London', 'Ticket4321'),
        ('Miami', 'Ticket4321'),
        ('Singapore', 'Ticket4321'),
        ('Sydney', 'Ticket1234')
    
    select
        Ticket,
        stuff((
            select distinct  '/' + t.[FromCity ]
            from Table1 t
    
            where t.Ticket = t1.Ticket
    
            for xml path('')
        ),1,1,'') as name_csv
    from Table1 t1
    group by Ticket
    

    输出

    TicketID    FromCities
    Ticket4321  London/Miami/Singapore
    Ticket1234  Sydney