Выражение SELECT (Transact-SQL)SELECT Clause (Transact-SQL)

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server даБаза данных SQL AzureнетХранилище данных SQL AzureнетParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Указывает столбцы, возвращаемые запросом.Specifies the columns to be returned by the query.

Значок ссылки на раздел Синтаксические обозначения в Transact-SQLTopic link icon Transact-SQL Syntax Conventions

СинтаксисSyntax

  
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 ]   

АргументыArguments

ALLALL
Указывает, что в результирующем наборе могут появиться повторяющиеся строки.Specifies that duplicate rows can appear in the result set. ALL является параметром по умолчанию.ALL is the default.

DISTINCTDISTINCT
Указывает, что в результирующем наборе могут появиться только уникальные строки.Specifies that only unique rows can appear in the result set. Значения NULL считаются равными для ключевого слова DISTINCT.Null values are considered equal for the purposes of the DISTINCT keyword.

TOP (expression ) [ PERCENT ] [ WITH TIES ]TOP (expression ) [ PERCENT ] [ WITH TIES ]
Указывает на то, что только заданное число или процент строк будет возвращен из результирующего набора запроса.Indicates that only a specified first set or percent of rows will be returned from the query result set. expression может быть либо числом, либо процентом от числа строк.expression can be either a number or a percent of the rows.

В целях обратной совместимости использование TOP expression без скобок в инструкциях SELECT поддерживается, но не рекомендуется.For backward compatibility, using the TOP expression without parentheses in SELECT statements is supported, but we do not recommend it. Дополнительные сведения см. в разделе TOP (Transact-SQL).For more information, see TOP (Transact-SQL).

< select_list > Столбцы, выбираемые в результирующий набор.< select_list > The columns to be selected for the result set. Список выбора представляет собой серию выражений, отделяемых запятыми.The select list is a series of expressions separated by commas. Максимальное число выражений, которое можно задать в списке выбора — 4 096.The maximum number of expressions that can be specified in the select list is 4096.

*
Указывает на то, что все столбцы из всех таблиц и представлений в предложении FROM должны быть возвращены.Specifies that all columns from all tables and views in the FROM clause should be returned. Столбцы возвращаются таблицей или представлением, как указано в предложении FROM, и в порядке, в котором они находятся в таблице или представлении.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.*
Ограничивает область * указанной таблицей или представлением.Limits the scope of the * to the specified table or view.

column_namecolumn_name
Имя возвращаемого столбца.Is the name of a column to return. Указывайте квалификатор для аргумента column_name во избежание неоднозначных ссылок, которые могут возникнуть, если в двух таблицах из предложения FROM содержатся столбцы с повторяющимися именами.Qualify column_name to prevent an ambiguous reference, such as occurs when two tables in the FROM clause have columns with duplicate names. Например, таблицы SalesOrderHeader и SalesOrderDetail в базе данных AdventureWorks2012AdventureWorks2012 содержат столбцы с именем ModifiedDate.For example, the SalesOrderHeader and SalesOrderDetail tables in the AdventureWorks2012AdventureWorks2012 database both have a column named ModifiedDate. Если в запросе соединяются две таблицы, то данные о дате изменения из таблицы SalesOrderDetail могут быть заданы в списке выбора как 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
Является константой, функцией, любым сочетанием имен столбцов, констант и функций, соединенных оператором (операторами) или вложенным запросом.Is a constant, function, any combination of column names, constants, and functions connected by an operator or operators, or a subquery.

$IDENTITY$IDENTITY
Возвращает столбец идентификатора.Returns the identity column. Дополнительные сведения см. в статьях IDENTITY (Property) (Transact-SQL), ALTER TABLE (Transact-SQL) и CREATE TABLE (Transact-SQL).For more information, see IDENTITY (Property) (Transact-SQL), ALTER TABLE (Transact-SQL), and CREATE TABLE (Transact-SQL).

Если более чем одна таблица из предложения FROM содержит столбец со свойством IDENTITY, $IDENTITY должно быть задано с определенным именем таблицы, например 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
Возвращает столбец с идентификаторами GUID строки.Returns the row GUID column.

Если более чем одна таблица из предложения FROM содержит столбец со свойством ROWGUIDCOL, $ROWGUIDCOL должно быть задано с определенным именем таблицы, например T1.$IDENTITY.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
Имя возвращаемого, определяемого пользователем типа данных CLR столбца.Is the name of a common language runtime (CLR) user-defined type column to return.

Примечание

Среда SQL Server Management StudioSQL Server Management Studio возвращает значения определяемого пользователем типа в двоичном представлении.SQL Server Management StudioSQL Server Management Studio returns user-defined type values in binary representation. Чтобы вернуть значения пользовательского типа в виде строки или в формате XML, используйте функцию CAST или CONVERT.To return user-defined type values in string or XML format, use CAST or CONVERT.

{ .{ . | :: }| :: }
Указывает метод, свойство или поле пользовательского типа CLR.Specifies a method, property, or field of a CLR user-defined type. Используйте .Use . для метода экземпляра (нестатического), свойства или поля.for an instance (nonstatic) method, property, or field. Используйте :: для статического метода, свойства или поля.Use :: for a static method, property, or field. Для обращения к методу, свойству или полю определяемого пользователем типа среды CLR необходимо разрешение EXECUTE для этого типа.To invoke a method, property, or field of a CLR user-defined type, you must have EXECUTE permission on the type.

property_nameproperty_name
Открытое свойство столбца udt_column_name.Is a public property of udt_column_name.

field_namefield_name
Открытый элемент данных столбца udt_column_name.Is a public data member of udt_column_name.

method_namemethod_name
Открытый метод столбца udt_column_name, принимающий один или несколько аргументов.Is a public method of udt_column_name that takes one or more arguments. Метод method_name не может быть методом мутатора.method_name cannot be a mutator method.

В следующем примере выбираются значения столбца Location, определенного типом point, из таблицы Cities путем обращения к методу типа, названного 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
Альтернативное имя, которым можно заменить имя столбца в результирующем наборе запроса.Is an alternative name to replace the column name in the query result set. Например, для столбца «quantity» может быть указан псевдоним «Quantity», «Quantity to Date» или «Qty».For example, an alias such as Quantity, or Quantity to Date, or Qty can be specified for a column named quantity.

Кроме того, псевдонимы используются для указания имен для результатов выражений, например: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 может использоваться в предложении ORDER BY.column_alias can be used in an ORDER BY clause. Однако он не может быть использован в предложениях WHERE, GROUP BY или HAVING.However, it cannot be used in a WHERE, GROUP BY, or HAVING clause. Если выражение запроса является частью инструкции DECLARE CURSOR, column_alias не может использоваться в предложении FOR UPDATE.If the query expression is part of a DECLARE CURSOR statement, column_alias cannot be used in the FOR UPDATE clause.

RemarksRemarks

Длина возвращаемых данных для столбцов типа text или ntext, включенных в список выбора, устанавливается в минимальное значение из следующих: фактический размер столбца text, значение настройки TEXTSIZE сеанса по умолчанию или жестко заданное в приложении ограничение.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. Чтобы изменить длину возвращаемого текста для сеанса, используйте инструкцию SET.To change the length of returned text for the session, use the SET statement. По умолчанию ограничение на длину возвращаемых при помощи инструкции SELECT текстовых данных равно 4 000 байт.By default, the limit on the length of text data returned with a SELECT statement is 4,000 bytes.

Компонент Компонент SQL Server Database EngineSQL Server Database Engine вызывает исключение номер 511 и осуществляет откат транзакции до момента выполнения текущей инструкции, если наблюдается одно из следующих явлений.The Компонент SQL Server Database EngineSQL Server Database Engine raises exception 511 and rolls back the current running statement if either of the following behavior occurs:

  • Следствием инструкции SELECT является строка результата или строка промежуточной таблицы, превышающая 8 060 байт.The SELECT statement produces a result row or an intermediate work table row exceeding 8,060 bytes.

  • Инструкции DELETE, INSERT или UPDATE производят действия со строкой, превышающей 8 060 байт.The DELETE, INSERT, or UPDATE statement tries an action on a row exceeding 8,060 bytes.

Ошибка возникает в случае, если не указано имя столбца, созданного при помощи инструкции SELECT INTO или CREATE VIEW.An error occurs if no column name is specified to a column created by a SELECT INTO or CREATE VIEW statement.

См. также:See Also

Примеры использования инструкции SELECT (Transact-SQL) SELECT Examples (Transact-SQL)
Выражения (Transact-SQL) Expressions (Transact-SQL)
SELECT (Transact-SQL)SELECT (Transact-SQL)