top10 top developer 11g oracle select plsql top-n

developer - select top oracle 11g



seleccione la 2da fila en Plsql (2)

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

Digamos que tengo la siguiente tabla:

SomeTable( id, price )

¿Cómo selecciono la segunda fila más cara de esta tabla? Nota: Esto tiene que hacerse en Pl / SQL, de una manera independiente de la base de datos. ¿Es posible hacer esto sin ningún bucle?

  1. Sé cómo se hace esto usando construcciones de Oracle como construcciones rownum o mysql como limit , así que no estoy buscando esas.

¿No es esto simple? ¡Dios sabe por qué no pensé en eso antes!

seleccione max (precio) desde tnum donde precio <> (seleccione max (precio) desde tnum)