Diferència entre revisions de la pàgina «M2 - Bases de dades / Continguts UF2: Ampliacio SQL»

De wikiserver
Dreceres ràpides: navegació, cerca
(Consultes amb ROWNUM)
Línia 6: Línia 6:
 
<pre>
 
<pre>
 
SELECT ROWNUM, edad, nombre FROM clientes;
 
SELECT ROWNUM, edad, nombre FROM clientes;
<pre>
+
</pre>
 +
 
 
Aparece el número de cada fila en la posición de la tabla. Esa función actualiza sus valores usando subconsultas de modo que la consulta:
 
Aparece el número de cada fila en la posición de la tabla. Esa función actualiza sus valores usando subconsultas de modo que la consulta:
 +
 
<pre>
 
<pre>
 
SELECT ROWNUM AS ranking, edad, nombre
 
SELECT ROWNUM AS ranking, edad, nombre

Revisió del 11:18, 30 nov 2017

Consultes avançades

Consultes amb ROWNUM

La función ROWNUM devuelve el número de la fila de una consulta. Por ejemplo en:

SELECT ROWNUM, edad, nombre FROM clientes;

Aparece el número de cada fila en la posición de la tabla. Esa función actualiza sus valores usando subconsultas de modo que la consulta:

SELECT ROWNUM AS ranking, edad, nombre
FROM (SELECT edad, nombre FROM clientes ORDER BY edad DESC);

Puesto que la consulta SELECT edad, nombre FROM clientes ORDER BY edad DESC, obtiene una lista de los clientes ordenada por edad, el SELECT superior obtendrá esa lista pero mostrando el orden de las filas en esa consulta. Eso permite hacer consultas el tipo top-n, (los n más....).

Por ejemplo para sacar el top-10 de la edad de los clientes (los 10 clientes más mayores):

SELECT ROWNUM AS ranking, edad, nombre
FROM (SELECT edad, nombre FROM clientes ORDER BY edad DESC)
WHERE ROWNUM<=10;

Consultes Jeràrquiques

https://www.toadworld.com/platforms/oracle/b/weblog/archive/2015/10/19/como-construir-consultas-jer-rquicas

select  concat(lpad(' ', level * 3 - 3), last_name) nombre
from employees
connect by prior employee_id = manager_id
start with manager_id is null;