Бөлісу құралы:


Предложение SELECT (Transact-SQL)

Применимо к:SQL ServerБаза данных SQL AzureУправляемый экземпляр SQL AzureКонечная точка аналитики SQL в Microsoft FabricХранилище в Microsoft FabricБаза данных SQL в Microsoft Fabric

Указывает столбцы, возвращаемые запросом Transact-SQL (T-SQL).

Соглашения о синтаксисе Transact-SQL

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

ALL

Указывает, что в результирующем наборе могут появиться повторяющиеся строки. ALL — это значение по умолчанию.

DISTINCT

Указывает, что в результирующем наборе могут появиться только уникальные строки. Значения NULL считаются равными для целей ключевого DISTINCT слова.

TOP (выражение) [ ПРОЦЕНТ ] [ WITH TIES ]

Указывает, что из результированного набора запроса возвращаются только указанный первый набор или процент строк. expression может быть либо числом, либо процентом от числа строк.

Хотя TOP <expression> без скобки поддерживается в SELECT инструкциях для обратной совместимости, избежать этого синтаксиса. Дополнительные сведения см. в разделе TOP.

<select_list>

Указывает столбцы, которые нужно выбрать для результирующего набора. Список выбора представляет собой серию выражений, отделяемых запятыми. Максимальное количество выражений, которые можно указать в списке выбора, равно 4096.

*

Указывает, что все столбцы из всех таблиц и представлений в предложении FROM должны быть возвращены. Столбцы возвращаются в таблице или представлении, как указано в FROM предложении, и в том порядке, в котором они существуют в таблице или представлении.

| table_name | view_nametable_alias.*

Ограничивает область * указанной таблицей или представлением.

column_name

Имя возвращаемого столбца. Квалифицируйте column_name, чтобы предотвратить неоднозначную ссылку, например, когда две таблицы в FROM предложении имеют столбцы с повторяющимися именами. Например, SalesOrderHeaderSalesOrderDetail таблицы в AdventureWorks2025 базе данных имеют имя ModifiedDateстолбца. Если две таблицы присоединены к запросу, можно указать измененную дату SalesOrderDetail записей в списке выбора как SalesOrderDetail.ModifiedDate.

expression

Константа, функция, любая комбинация имен столбцов, констант и функций, подключенных оператором или операторами, или вложенным запросом.

$IDENTITY

Возвращает столбец идентификатора. Дополнительные сведения см. в разделе IDENTITY (Свойство),ALTER TABLE и CREATE TABLE.

Если в FROM предложении несколько таблиц содержит столбец со IDENTITY свойством, необходимо указать $IDENTITY определенное имя таблицы, например T1.$IDENTITY.

$ROWGUID

Возвращает столбец с идентификаторами GUID строки.

Если в FROM предложении имеется ROWGUIDCOL несколько таблиц, необходимо указать $ROWGUID определенное имя таблицы, например T1.$ROWGUID.

udt_column_name

Имя возвращаемого столбца определяемого пользователем типа среды CLR.

Note

SQL Server Management Studio возвращает пользовательские значения типов в двоичном представлении. Чтобы возвращать пользовательские значения типов в строковом или XML-формате, используйте CAST и CONVERT или CAST и CONVERT.

{ . | :: }

Указывает метод, свойство или поле пользовательского типа CLR. Используйте период () для метода экземпляра (.нестатического), свойства или поля. Используйте двойную двоеточие (::) для статического метода, свойства или поля. Чтобы вызвать метод, свойство или поле определяемого пользователем типа СРЕДЫ CLR, необходимо иметь EXECUTE разрешение на тип.

property_name

Общедоступное свойство udt_column_name.

field_name

Общедоступный член данных udt_column_name.

method_name

Общедоступный метод udt_column_name , который принимает один или несколько аргументов. method_name не может быть методом мутатора.

В следующем примере выбираются значения для Location столбца, определенного как точка типа, из Cities таблицы, путем вызова метода вызываемого Distanceтипа:

CREATE TABLE dbo.Cities
(
    Name VARCHAR (20),
    State VARCHAR (20),
    Location POINT
);
GO

DECLARE @p AS POINT (32, 23),
        @distance AS FLOAT;

SELECT Location.Distance(@p)
FROM Cities;

column_alias

Альтернативное имя для замены имени столбца в результирующем наборе запросов. Например, псевдоним, например Quantity, или QtyQuantityDateдля столбца с именем.quantity

Псевдонимы можно использовать для указания имен результатов выражений, например:

USE AdventureWorks2025;
GO

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

column_alias можно использовать в предложении ORDER BY . Однако его нельзя использовать в предложении или GROUP BYHAVING предложенииWHERE. Если выражение запроса является частью DECLARE CURSOR инструкции, column_alias нельзя использовать в предложении FOR UPDATE .

Remarks

При включении текстовых или ntext-столбцов в список выбора длина возвращаемых данных является наименьшим значением следующих параметров:

  • фактический размер текстового столбца,
  • параметр сеанса по умолчанию TEXTSIZE или
  • ограничение закодированного приложения.

Чтобы изменить длину возвращаемого текста для сеанса, используйте инструкцию SET . По умолчанию ограничение длины текстовых данных, возвращаемых оператором SELECT , составляет 4000 байт.

Ядро СУБД SQL Server вызывает исключение 511 и откатает текущую инструкцию выполнения, если происходит одно из следующих действий:

  • Оператор SELECT создает результирующий или промежуточный рабочий стол, превышающий 8060 байт.

  • Оператор DELETE, INSERTили UPDATE инструкция пытается выполнить действие в строке, превышающей 8 060 байтов.

Ошибка возникает, если не указать имя столбца для столбца, созданного оператором или CREATE VIEW операторомSELECT INTO.