我有个表,有三个列,序号,省,市.内容如下
序号 , 省, 市
1 , 广东, 广州
    广东, 深圳
    广东, 汕头
2 , 海南, 海口
    海南, 三亚这个序号呢,是按省来排的,请问在SQL里如何写呢??
由于我是在水晶报表中的,要是能有水晶报表的formula里写的更好。

解决方案 »

  1.   

    http://topic.csdn.net/u/20110630/17/7905ef3b-4be4-483c-ae93-b417ebd98221.html参见此帖!
      

  2.   

    sql就是选出数据吧。
    select 序号,省,市 from tb order by 序号,省,市
      

  3.   

    select 序号=isnull(序号,(select top 1 序号 from tb a where a.省=tb.省 and a.序号 is not null)) ,省,市
    from tb
      

  4.   

    --或者
    select b.序号,a.省,a.市
    from tb a ,tb b 
    where a.省=b.省 and b.序号 is not null
      

  5.   

    补充及纠正一下,SQL里有两列,省,市
    省  , 市
    广东, 广州
    广东, 深圳
    广东, 汕头
    海南, 海口
    海南, 三亚想要的结果如下,有三个列,序号,省,市.序号 , 省, 市
    1 , 广东, 广州
      广东, 深圳
      广东, 汕头
    2 , 海南, 海口
      海南, 三亚
     
      

  6.   

    select row_number over (order by 省) as 序号,省, 市
    from tb
      

  7.   


    select DENSE_RANK() over (order by 省) as 序号,省, 市
    from tb