语句:
select row_number() over (orderby colum1) seqNo,
       colum1
  from TB_A 
where colum1 = 1
假如表TB_A里是
colum1 colum2 colum3
103    203    303
101    201    301
102    202    302
104    204    304
我想问下这句话抽出来的数据一定是按照colum1排序的么?即一定是
seqNo colum1
1     101
2     102
3     103
4     104
不会是其他顺序的么?例如:
seqNo colum1
1     101
3     103
2     102
4     104是否一定要写成下面这样呢(写明orderby seqNo)?
select row_number() over (orderby colum1) seqNo,
       colum1
  from TB_A 
where colum1 = 1
orderby seqNo

解决方案 »

  1.   

    一定是按orderc by colum1的
    你自己去测试一下就知道了
      

  2.   

    其实对于不是统计分组排名的

    select a.* ,rownum rn
    from a
    order by a.XX和select a.*,row_number () over(order by a.xx)
    from a
    两个没什么差别的
      

  3.   

    如果不分组,直接用rownum即可.select * from TB_A where colum1 = 1 order by colum1select row_number() over (order by colum1) seqNo, colum1 from TB_A where colum1 = 1 order by seqNo
      

  4.   

    2楼说的写法我明白了,但是想问的是出来的顺序。。或者说想知道如果不写order by数据根据什么来决定抽出顺序。。
      

  5.   

    我测过了几种情况,并不是全按colum1排序,所以不明白先睡了谢谢