¿Introducción detallada a la sintaxis SQL?
Cláusula SELECT
Especifica las columnas devueltas por la consulta.
Sintaxis
SELECCIONAR [ TODO | DISTINTO ]
[ TOP n [ POR CIENTO ] [ CON LAZOS ] ]
< select_list >
< lista_selección > ::=
{ *
| { nombre_tabla | nombre_vista }.*
{ nombre_columna | | IDENTITYCOL | ROWGUIDCOL }
[ [ AS ] alias_columna ]
| alias_columna = expresión
} [ ,...n ]
Parámetros
ALL
Especifica que se pueden mostrar filas duplicadas en el conjunto de resultados. TODO es la configuración predeterminada.
DISTINCT
Especifica que solo se pueden mostrar filas únicas en el conjunto de resultados. A los efectos de la palabra clave DISTINCT, los valores nulos se consideran iguales.
TOP n [PERCENT]
Especifica que solo se generan las primeras n filas del conjunto de resultados de la consulta. n es un número entero entre 0 y 4294967295. Si también se especifica PERCENT, solo se genera el primer n por ciento de filas del conjunto de resultados. Cuando se especifica con PERCENT, n debe ser un número entero entre 0 y 100.
Si la consulta contiene una cláusula ORDER BY, se generarán las primeras n filas (o el primer n por ciento de filas) ordenadas por la cláusula ORDER BY. Si la consulta no tiene una cláusula ORDER BY, el orden de las filas será arbitrario.
CON LAZOS
Especifica que se devuelven filas adicionales del conjunto de resultados base que contienen los mismos valores que aparecen en la última columna ORDER BY de las n filas SUPERIORES (POR CIENTO) . Si se especifica una cláusula ORDER BY, solo se puede especificar TOP...WITH TIES.
< select_list
Las columnas seleccionadas para el conjunto de resultados. Una lista de selección es una lista de expresiones separadas por comas.
*
Especifica que todas las columnas de todas las tablas y vistas se devuelven en la cláusula FROM. La tabla o vista devuelve las columnas según lo especificado en la cláusula FROM y en el orden en que aparecen en la tabla o vista.
nombre_tabla | nombre_vista | alias_tabla.*
Limita el alcance de * a la tabla o vista especificada.
column_name
Es el nombre de la columna que se devolverá. Califique nombre_columna para evitar referencias ambiguas, que pueden ocurrir cuando dos tablas en la cláusula FROM tienen columnas con nombres duplicados. Por ejemplo, las tablas Clientes y Pedidos en la base de datos Northwind tienen columnas denominadas ColumnID. Si une las dos tablas en una consulta, puede especificar el ID del cliente en la lista de selección como Customers.CustomerID.
expresión
es un nombre de columna, una constante, una función, cualquier combinación de nombres de columna, constantes y funciones conectadas por un operador o una subconsulta.
IDENTITYCOL
Devuelve la columna de identidad.
Para obtener más información, consulte IDENTIDAD (propiedad), ALTERAR TABLA y CREAR TABLA.
Si varias tablas en la cláusula FROM tienen columnas que contienen atributos IDENTITY, IDENTITYCOL debe calificarse con un nombre de tabla específico (como T1.IDENTITYCOL).
ROWGUIDCOL
Devuelve la columna de identificación global única de la fila.
Si más de una tabla tiene el atributo ROWGUIDCOL en la cláusula FROM, ROWGUIDCOL debe calificarse con un nombre de tabla específico (como T1.ROWGUIDCOL).
column_alias
es un nombre opcional para reemplazar los nombres de las columnas en el conjunto de resultados de la consulta. Por ejemplo, puede asignar a una columna denominada cantidad un alias como "Cantidad", "Cantidad hasta la fecha" o "Cantidad".
Alias también se puede utilizar para especificar un nombre para el resultado de una expresión, por ejemplo:
USE Northwind
SELECT AVG(UnitPrice) AS 'Precio promedio'
DESDE [Detalles del pedido]
column_alias se puede utilizar en la cláusula ORDER BY. Sin embargo, no se puede utilizar en cláusulas WHERE, GROUP BY o HAVING. Si la expresión de consulta es parte de una declaración DECLARE CURSOR, column_alias no se puede utilizar en la cláusula FOR UPDATE.
Cláusula INTO
Crea una nueva tabla e inserta las filas de resultados de la consulta en la nueva tabla.
Para ejecutar una sentencia SELECT con una cláusula INTO, el usuario debe tener permisos CREATE TABLE en la base de datos de destino. SELECT...INTO no se puede utilizar con la cláusula COMPUTE. Para obtener más información, consulte Transacciones y transacciones explícitas.
Puedes usar SELECT...INTO para crear la misma definición de tabla (con un nombre de tabla diferente) sin datos incluyendo una condición FALSE en la cláusula WHERE.
Sintaxis
[ INTO new_table ]
Parámetros
new_table
Basado en las columnas de la lista de selección y la cláusula WHERE selecciona filas especificando el nombre de la nueva tabla que se creará. El formato de new_table se determina evaluando expresiones en la lista de selección. Las columnas de new_table se crean en el orden especificado en la lista de selección. Cada columna de new_table tiene el mismo nombre, tipo de datos y valor que la expresión correspondiente en la lista de selección.
Cuando la lista de selección contiene una columna calculada, la columna correspondiente en la nueva tabla no es una columna calculada. Los valores de las nuevas columnas se calculan cuando se ejecuta SELECT...INTO.
En esta versión de SQL Server, la opción seleccionar en/copiar en masa la base de datos no tiene ningún impacto sobre si puede usar SELECT INTO para crear tablas permanentes. La cantidad de registro para determinadas operaciones masivas, incluido SELECT INTO, depende del modelo de recuperación vigente para la base de datos. Para obtener más información, consulte Uso de modelos de recuperación.
En versiones publicadas anteriormente, si se configuraba seleccionar en/copia masiva, se podía usar SELECT INTO para crear una tabla permanente.