11-SELECT TOP en SQL

La clausula select top se utiliza para selecionar el numero de registros a devolver de una tabla

Esta clausula select top es muy util cuando tenemos miles de registros

en MySQL se usa LIMIT en vez de select top

En ORACLE se usa FETCH FIRST n ROWS ONLYy ROWNUM

veamos las seguientes sintaxis


Sintaxis en SQL

SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition; 
  

...

Sintaxis en MySQL

    SELECT column_name(s)
    FROM table_name
    WHERE condition
    LIMIT number;
  

Sintaxis en Oracle 12

SELECT column_name(s)
FROM table_name
ORDER BY column_name(s)
FETCH FIRST number ROWS ONLY;
  

Sintaxis en Oracle mas antiguo

    SELECT column_name(s)
    FROM table_name
    WHERE ROWNUM <= number; 
  

Sintaxis en Oracle anterior (con ORDER BY):

SELECT *
FROM (SELECT column_name(s) FROM table_name ORDER BY column_name(s))
WHERE ROWNUM <= number;
  



Ejemplos

La siguiente instrucción SQL selecciona los tres primeros registros de la tabla "Clientes" (para SQL Server/MS Access):

SELECT TOP 3 * FROM Customers;

La siguiente instrucción SQL muestra el ejemplo equivalente para MySQL:

SELECT * FROM Customers
LIMIT 3;

La siguiente instrucción SQL muestra el ejemplo equivalente para Oráculo:

SELECT * FROM Customers
FETCH FIRST 3 ROWS ONLY; 



Ejemplos de selecion por porcentages

SQL seleciona 50% de los registros de la tabla clientes

SELECT TOP 50 PERCENT * FROM clientes;

ORACULO seleciona 50% de los registros de la tabla clientes

SELECT * FROM Customers FETCH FIRST 50 PERCENT ROWS ONLY;



Ejemplos, Agregacion de clausula WHERE

SQL seleciona los 3 primeros clientes onde su país es alemania

SELECT TOP 3 * FROM clientes
WHERE Country='Alemania';

MySQL seleciona los 3 primeros clientes onde su país es alemania

SELECT * FROM Clientes
WHERE Country='Alemania'
LIMIT 3;

ORACULO seleciona los 3 primeros clientes onde su país es alemania

    SELECT * FROM Clientes
    WHERE Country='Alemania'
    FETCH FIRST 3 ROWS ONLY;


Publicar un comentario

0 Comentarios