各位高手,请问如果我想把我查询到的满足条件的记录再加上1,2,3,4...等这样递增的编号显示出来,SQL语句该怎样写呢?谢谢!

解决方案 »

  1.   

    用rownum就可以了,这是个隐含的列
    select rownum,col1,col2
    from tables;
      

  2.   

    谢谢楼上的,但是我用了你的语句后只显示一个只有rownum栏的空表,虽然有与查询结果记录数相同的行,但每行的rownum值都为空,且后面的字段都显示不出来(只有一个rownum字段),这是为什么呢?我是用delphi在oracle开发的。谢谢
      

  3.   

    SQL> select c1,c2 from c;C1         C2
    ---------- ----------
    甲         风湿
    甲         感冒
    甲         眼睛患疾
    乙         头痛
    乙         腿残
    丙         指头断
    丙         鼻炎7 rows selectedExecuted in 0.031 secondsSQL> select rownum r,c1,c2 from c where c1 = '甲';         R C1         C2
    ---------- ---------- ----------
             1 甲         风湿
             2 甲         感冒
             3 甲         眼睛患疾Executed in 0.032 secondsSQL>
      

  4.   

    楼主用了一个oracle自带的隐含字段rownum,来做自己的字段名,我想你可以试试这样:
    select rownum,ownerRownum  from
        (select rownum as ownerRownum from tabName);
      

  5.   

    谢谢楼上的回答,我是用delphi7+oracle9i开发一个小程序,我用了select rownum,col1,col2
    from tables; 这个sql来实现我说的功能,现在问题来了,这条sql在oracle的sql plus中能按照预期的实现,但是用在delphi中的adoquery的sql语句中执行后在dbgrid里只显示一个只有rownum字段而没有col1和col2的空表,虽然有与查询结果记录数相同的行数,但每行的rownum值都为空,这是为什么呢?谢谢!
      

  6.   

    像feng2(蜀山风云)那样把rownum取个别名看看行不行
      

  7.   

    如果只是显示,建一个VIEW试试
      

  8.   

    select rownum RowP ,col1,col2 from table