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?
- Sé cómo se hace esto usando construcciones de Oracle como construcciones
rownum
o mysql comolimit
, 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)