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;
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias