Microsoft SQL Server
Instrucción SELECT
Buscar..
Introducción
En SQL, las instrucciones SELECT
devuelven conjuntos de resultados de colecciones de datos como tablas o vistas. SELECT
se pueden usar con varias otras cláusulas como WHERE
, GROUP BY
u ORDER BY
para refinar aún más los resultados deseados.
SELECT básico de la tabla
Seleccione todas las columnas de alguna tabla (tabla del sistema en este caso):
SELECT *
FROM sys.objects
O seleccione solo algunas columnas específicas:
SELECT object_id, name, type, create_date
FROM sys.objects
Filtrar filas usando la cláusula WHERE
La cláusula WHERE filtra solo aquellas filas que satisfacen alguna condición:
SELECT *
FROM sys.objects
WHERE type = 'IT'
Ordenar resultados utilizando ORDENAR POR
La cláusula ORDER BY ordena las filas en el conjunto de resultados devuelto por alguna columna o expresión:
SELECT *
FROM sys.objects
ORDER BY create_date
Resultado de grupo utilizando GROUP BY
La cláusula GROUP BY agrupa las filas por algún valor:
SELECT type, count(*) as c
FROM sys.objects
GROUP BY type
Puede aplicar alguna función en cada grupo (función agregada) para calcular la suma o el recuento de los registros en el grupo.
tipo | do |
---|---|
SQ | 3 |
S | 72 |
ESO | dieciséis |
PK | 1 |
U | 5 |
Filtrar grupos utilizando la cláusula HAVING.
La cláusula HAVING elimina los grupos que no satisfacen la condición:
SELECT type, count(*) as c
FROM sys.objects
GROUP BY type
HAVING count(*) < 10
tipo | do |
---|---|
SQ | 3 |
PK | 1 |
U | 5 |
Devolviendo solo las primeras N filas
La cláusula TOP devuelve solo las primeras N filas en el resultado:
SELECT TOP 10 *
FROM sys.objects
Paginación utilizando OFFSET FETCH
La cláusula OFFSET FETCH es una versión más avanzada de TOP. Le permite omitir filas N1 y tomar las siguientes filas N2:
SELECT *
FROM sys.objects
ORDER BY object_id
OFFSET 50 ROWS FETCH NEXT 10 ROWS ONLY
Puede usar OFFSET sin recuperación para saltar las primeras 50 filas:
SELECT *
FROM sys.objects
ORDER BY object_id
OFFSET 50 ROWS
SELECT sin FROM (sin fuente de datos)
La instrucción SELECT se puede ejecutar sin la cláusula FROM:
declare @var int = 17;
SELECT @var as c1, @var + 2 as c2, 'third' as c3
En este caso, se devuelve una fila con valores / resultados de expresiones.