SELECT (cláusula de Transact-SQL)SELECT Clause (Transact-SQL)

SE APLICA A: síSQL Server síAzure SQL Database noAzure Synapse Analytics (SQL DW) noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Especifica las columnas que va a devolver la consulta.Specifies the columns to be returned by the query.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

  
SELECT [ ALL | DISTINCT ]  
[ TOP ( expression ) [ PERCENT ] [ WITH TIES ] ]   
<select_list>   
<select_list> ::=   
    {   
      *   
      | { table_name | view_name | table_alias }.*   
      | {  
          [ { table_name | view_name | table_alias }. ]  
               { column_name | $IDENTITY | $ROWGUID }   
          | udt_column_name [ { . | :: } { { property_name | field_name }   
            | method_name ( argument [ ,...n] ) } ]  
          | expression  
          [ [ AS ] column_alias ]   
         }  
      | column_alias = expression   
    } [ ,...n ]   

ArgumentosArguments

ALLALL
Especifica que el conjunto de resultados puede incluir filas duplicadas.Specifies that duplicate rows can appear in the result set. ALL es el valor predeterminado.ALL is the default.

DISTINCTDISTINCT
Especifica que el conjunto de resultados solo puede incluir filas únicas.Specifies that only unique rows can appear in the result set. Los valores NULL se consideran iguales desde el punto de vista de la palabra clave DISTINCT.Null values are considered equal for the purposes of the DISTINCT keyword.

TOP (expression ) [ PERCENT ] [ WITH TIES ]TOP (expression ) [ PERCENT ] [ WITH TIES ]
Indica que el conjunto de resultados de la consulta solamente devolverá un primer conjunto o porcentaje de filas especificado.Indicates that only a specified first set or percent of rows will be returned from the query result set. expression puede ser un número o un porcentaje de las filas.expression can be either a number or a percent of the rows.

Por compatibilidad con versiones anteriores, se permite el uso de TOP expression sin paréntesis en las instrucciones SELECT, aunque no se recomienda.For backward compatibility, using the TOP expression without parentheses in SELECT statements is supported, but we do not recommend it. Para obtener más información, vea TOP (Transact-SQL).For more information, see TOP (Transact-SQL).

< select_list > Columnas que se van a seleccionar para el conjunto de resultados.< select_list > The columns to be selected for the result set. La lista de selección es una serie de expresiones separadas por comas.The select list is a series of expressions separated by commas. El número máximo de expresiones que se puede especificar en la lista de selección es 4.096.The maximum number of expressions that can be specified in the select list is 4096.

*
Especifica que se deben devolver todas las columnas de todas las tablas y vistas de la cláusula FROM.Specifies that all columns from all tables and views in the FROM clause should be returned. Las columnas se devuelven por tabla o vista, tal como se especifique en la cláusula FROM, en el orden en que se encuentran en la tabla o vista.The columns are returned by table or view, as specified in the FROM clause, and in the order in which they exist in the table or view.

table_name | view_name | tablealias.*table_name | view_name | tablealias.*
Limita el ámbito de * a la tabla o vista especificada.Limits the scope of the * to the specified table or view.

column_namecolumn_name
Es el nombre de una columna que se va a devolver.Is the name of a column to return. Para evitar referencias ambiguas, como sucedería si dos tablas de la cláusula FROM tuvieran columnas con nombres duplicados, se debe calificar column_name.Qualify column_name to prevent an ambiguous reference, such as occurs when two tables in the FROM clause have columns with duplicate names. Por ejemplo, las tablas SalesOrderHeader y SalesOrderDetail de la base de datos AdventureWorks2012AdventureWorks2012 tienen una columna denominada ModifiedDate.For example, the SalesOrderHeader and SalesOrderDetail tables in the AdventureWorks2012AdventureWorks2012 database both have a column named ModifiedDate. Si se combinan ambas tablas en una consulta, se puede especificar la fecha de modificación de las entradas SalesOrderDetail en la lista de selección como SalesOrderDetail.ModifiedDate.If the two tables are joined in a query, the modified date of the SalesOrderDetail entries can be specified in the select list as SalesOrderDetail.ModifiedDate.

expressionexpression
Es una constante, una función o una combinación de nombres de columna, constantes y funciones conectados mediante un operador, varios operadores o una subconsulta.Is a constant, function, any combination of column names, constants, and functions connected by an operator or operators, or a subquery.

$IDENTITY$IDENTITY
Devuelve la columna de identidad.Returns the identity column. Para obtener más información, vea IDENTITY (Propiedad) (Transact-SQL), ALTER TABLE (Transact-SQL) y CREATE TABLE (Transact-SQL).For more information, see IDENTITY (Property) (Transact-SQL), ALTER TABLE (Transact-SQL), and CREATE TABLE (Transact-SQL).

Si más de una tabla de la cláusula FROM contiene una columna con la propiedad IDENTITY, se debe calificar $IDENTITY con el nombre de tabla específico; por ejemplo, T1.$IDENTITY.If more than one table in the FROM clause has a column with the IDENTITY property, $IDENTITY must be qualified with the specific table name, such as T1.$IDENTITY.

$ROWGUID$ROWGUID
Devuelve la columna GUID de fila.Returns the row GUID column.

Si más de una tabla de la cláusula FROM tiene la propiedad ROWGUIDCOL, se debe calificar $ROWGUID con el nombre de tabla específico; por ejemplo, T1.$ROWGUID.If there is more than one table in the FROM clause with the ROWGUIDCOL property, $ROWGUID must be qualified with the specific table name, such as T1.$ROWGUID.

udt_column_nameudt_column_name
Es el nombre de la columna que tiene un tipo CLR (Common Language Runtime) definido por el usuario que se va a devolver.Is the name of a common language runtime (CLR) user-defined type column to return.

Nota

SQL Server Management StudioSQL Server Management Studio devuelve los valores de los tipos definidos por el usuario en representación binaria.returns user-defined type values in binary representation. Para devolver los valores de los tipos definidos por el usuario en formato XML o de cadena, use CAST o CONVERT.To return user-defined type values in string or XML format, use CAST or CONVERT.

{ .{ . | :: }| :: }
Especifica un método, una propiedad o un campo de un tipo definido por el usuario CLR.Specifies a method, property, or field of a CLR user-defined type. Use .Use . para métodos, propiedades o campos de instancia (no estáticos).for an instance (nonstatic) method, property, or field. Use :: para métodos, propiedades o campos estáticos.Use :: for a static method, property, or field. Para invocar un método, propiedad o campo de un tipo definido por el usuario CLR, debe tener el permiso EXECUTE para el tipo.To invoke a method, property, or field of a CLR user-defined type, you must have EXECUTE permission on the type.

property_nameproperty_name
Es una propiedad pública de udt_column_name.Is a public property of udt_column_name.

field_namefield_name
Es un miembro de datos público de udt_column_name.Is a public data member of udt_column_name.

method_namemethod_name
Es un método público de udt_column_name que toma uno o más argumentos.Is a public method of udt_column_name that takes one or more arguments. method_name no puede ser un método mutador.method_name cannot be a mutator method.

En el ejemplo siguiente se seleccionan los valores de la columna Location, definida como de tipo point, de la tabla Cities, mediante la invocación de un método del tipo denominado Distance:The following example selects the values for the Location column, defined as type point, from the Cities table, by invoking a method of the type called Distance:

CREATE TABLE dbo.Cities (  
     Name varchar(20),  
     State varchar(20),  
     Location point );  
GO  
DECLARE @p point (32, 23), @distance float;  
GO  
SELECT Location.Distance (@p)  
FROM Cities;  

column_ aliascolumn_ alias
Es un nombre alternativo que se utiliza para reemplazar el nombre de la columna en el conjunto de resultados de la consulta.Is an alternative name to replace the column name in the query result set. Por ejemplo, se puede especificar un alias como Quantity, Quantity to Date o Qty para una columna denominada quantity.For example, an alias such as Quantity, or Quantity to Date, or Qty can be specified for a column named quantity.

Los alias se emplean también para especificar nombres para los resultados de expresiones; por ejemplo:Aliases are used also to specify names for the results of expressions, for example:

USE AdventureWorks2012;  
GO  
SELECT AVG(UnitPrice) AS [Average Price]  
FROM Sales.SalesOrderDetail;

column_alias se puede usar en una cláusula ORDER BY.column_alias can be used in an ORDER BY clause. Sin embargo, no puede utilizarse en una cláusula WHERE, GROUP BY o HAVING.However, it cannot be used in a WHERE, GROUP BY, or HAVING clause. Si la expresión de consulta forma parte de una instrucción DECLARE CURSOR, column_alias no se puede usar en la cláusula FOR UPDATE.If the query expression is part of a DECLARE CURSOR statement, column_alias cannot be used in the FOR UPDATE clause.

NotasRemarks

La longitud de los datos devueltos de las columnas text o ntext incluidas en la lista de selección se establece en el valor menor de los siguientes: el tamaño real de la columna text, la configuración predeterminada de TEXTSIZE para la sesión o el límite de la aplicación codificado de forma rígida.The length of data returned for text or ntext columns that are included in the select list is set to the smallest value of the following: the actual size of the text column, the default TEXTSIZE session setting, or the hard-coded application limit. Para cambiar la longitud del texto devuelto de la sesión, utilice la instrucción SET.To change the length of returned text for the session, use the SET statement. De forma predeterminada, la longitud máxima de los datos de texto que se devuelven con una instrucción SELECT es de 4.000 bytes.By default, the limit on the length of text data returned with a SELECT statement is 4,000 bytes.

El Motor de base de datos de SQL ServerSQL Server Database Engine provoca la excepción 511 y revierte la instrucción que se está ejecutando en ese momento si se produce alguno de estos comportamientos:The Motor de base de datos de SQL ServerSQL Server Database Engine raises exception 511 and rolls back the current running statement if either of the following behavior occurs:

  • La instrucción SELECT produce una fila de resultados o una fila de la tabla de trabajo intermedia que supera los 8.060 bytes.The SELECT statement produces a result row or an intermediate work table row exceeding 8,060 bytes.

  • La instrucción DELETE, INSERT o UPDATE intenta realizar una acción en una fila que supera los 8.060 bytes.The DELETE, INSERT, or UPDATE statement tries an action on a row exceeding 8,060 bytes.

Se produce un error si no se proporciona un nombre a una columna creada con una instrucción SELECT INTO o CREATE VIEW.An error occurs if no column name is specified to a column created by a SELECT INTO or CREATE VIEW statement.

Consulte tambiénSee Also

Ejemplos de SELECT (Transact-SQL) SELECT Examples (Transact-SQL)
Expresiones (Transact-SQL) Expressions (Transact-SQL)
SELECT (Transact-SQL)SELECT (Transact-SQL)