有这种函数么?
这样写,也可以吧。
select line,empno,ename,job
from (select empno,ename,job,rownum line from scott.emp)
where line in

select min(line)
from
(
select empno,ename,job,rownum line from scott.emp)
union
select max(line) from
(
select empno,ename,job,rownum line from scott.emp
)
)

解决方案 »

  1.   

    LINE      EMPNO ENAME                JOB
    ---------- ---------- -------------------- ------------------
             1       7369 SMITH                CLERK
            12       7934 MILLER               CLERK
      

  2.   

    SQL> select * from aaa;ID TIME
    -- -----------
    1  2003-1-1
    1  2003-2-6
    1  2003-1-5SQL> select * from (select rownum rm,first_value(time) over(),last_value(time) over() from aaa) where rm=1;        RM FIRST_VALUE(TIME)OVER() LAST_VALUE(TIME)OVER()
    ---------- ----------------------- ----------------------
             1 2003-1-1                2003-1-5
      

  3.   

    记录还有什么第一,最后吗?你是用什么排序?是不是说rowid?
      

  4.   

    bobo 的写法狠陌生,也让人大开了眼;不过,如果按照楼主的要求的话,泥的这个写法好像是不合题意的;他应该要求的是选出2条记录来,泥的这个写法只是选出列的首末值。 enhydraboy(乱舞的浮尘) 的写法应该是这个题的答案~
      

  5.   

    Good ask.
    enhydraboy(乱舞的浮尘) 的写法应该只能查到物理存储的第一条和最后一条记录
    未必正确.
      

  6.   

    受益非浅,thanks beckhambobo(beckham) !
      

  7.   

    use rowid,rownum不就可以了吗?
      

  8.   

    取最后一条记录  select empno from emp where rowid =(select max(rowid) from emp)
      

  9.   

    取第一条记录  select sal from emp where rowid =(select min(rowid) from emp)
      

  10.   

    select * from emp where rowid =(select min(rowid) from emp)
    union
    select * from emp where rowid =(select max(rowid) from emp)