id     num(车次) station(车站)
2         k339       北京
3         k339      秦皇岛
4         k339       沈阳
5         k339      哈尔滨
6         t109       北京
7         t109       无锡
8         t109       上海
 
现在要查询:查询每班车次所经过的站点
好像是让num这一列分组查询,查询出来的结果应该是这样的:K339:北京 秦皇岛 沈阳 哈尔滨
T109:北京 无锡 上海

解决方案 »

  1.   

    或者得出:
    2         k339       北京      4
    3         k339      秦皇岛     4
    4         k339       沈阳      4
    5         k339      哈尔滨     4
    6         t109       北京      3
    7         t109       无锡      3
    8         t109       上海      3
      

  2.   

    if object_id('[TB]') is not null drop table [TB]
    go
    create table [TB] (id int,num nvarchar(8),station nvarchar(6))
    insert into [TB]
    select 2,'k339','北京' union all
    select 3,'k339','秦皇岛' union all
    select 4,'k339','沈阳' union all
    select 5,'k339','哈尔滨' union all
    select 6,'t109','北京' union all
    select 7,'t109','无锡' union all
    select 8,'t109','上海'select * from [TB]select num, station=stuff((select '-'+station from tb t where num=tb.num for xml path('')), 1, 1, '') 
    from tb 
    group by num 
    /*
    num station
    k339 北京-秦皇岛-沈阳-哈尔滨
    t109 北京-无锡-上海*/