Post

Visualizzazione dei post da maggio, 2015

ROWNUM: estrazione lotto di righe

Immagine
Supponiamo di avere un insieme di righe da voler estrarre in lotti, ad esempio lotti da 10, senza utilizzare una particolare condizione su una colonna. Di seguito la lista da estrarre: select EMPLOYEE_ID , FIRST_NAME, LAST_NAME from EMPLOYEES where EMPLOYEE_ID between 100 and 125; La funzione ROWNUM viene eseguita dopo la clausola ORDER BY Oracle esegue prima  l'ordinamento sull'intera lista e poi estrae il sottoinsieme di righe indicato, ossia non estrae prima il sottoinsieme di righe e poi lo ordina. Se la clausola non è presente, il risultato della query è di default ordinato secondo la prima colonna. select EMPLOYEE_ID , FIRST_NAME, LAST_NAME from EMPLOYEES where EMPLOYEE_ID between 100 and 125 and ROWNUM < 11; select EMPLOYEE_ID , FIRST_NAME, LAST_NAME from EMPLOYEES where EMPLOYEE_ID between 100 and 125 and ROWNUM < 11 ORDER BY 1 desc; Se vogliamo estrarre i seguenti lotti 100-109, 110-119, 120-125  utilizzare la seguente query: