select 2nd row in Plsql

后端 未结 2 1415
天涯浪人
天涯浪人 2021-01-25 23:07

Lets say I have the following table:

 SomeTable(
    id, 
    price
 )

How do I select the 2nd highest priced row from this table? Note : This

相关标签:
2条回答
  • 2021-01-25 23:41
    CREATE TABLE mytable (id NUMBER PRIMARY KEY, price NUMBER NOT NULL);
    INSERT INTO mytable VALUES (1, 10);
    INSERT INTO mytable VALUES (2, 20);
    INSERT INTO mytable VALUES (3, 20);
    INSERT INTO mytable VALUES (4, 30);
    
    SELECT id, price 
     FROM (
           SELECT id, price, RANK() OVER (ORDER BY price DESC) AS r
             FROM mytable
          )
     WHERE r=2;
    
     ID PRICE
    --- -----
      2    20
      3    20
    
    0 讨论(0)
  • 2021-01-25 23:52

    Isn't this simple? God knows why I didn't think about it before!

    select max(price) from tnum where price <> (select max(price) from tnum)

    0 讨论(0)
提交回复
热议问题