Выражение SELECT (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечную точку аналитики SQL в хранилище Microsoft Fabric в базе данных SQL Microsoft Fabric в Microsoft Fabric
Указывает столбцы, возвращаемые запросом.
Соглашения о синтаксисе Transact-SQL
Синтаксис
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 ]
Аргументы
ALL
Указывает, что в результирующем наборе могут появиться повторяющиеся строки. ALL является параметром по умолчанию.
DISTINCT
Указывает, что в результирующем наборе могут появиться только уникальные строки. Значения NULL считаются равными для ключевого слова DISTINCT.
TOP (expression ) [ PERCENT ] [ WITH TIES ]
Указывает на то, что только заданное число или процент строк будет возвращен из результирующего набора запроса. expression может быть либо числом, либо процентом от числа строк.
В целях обратной совместимости использование TOP expression без скобок в инструкциях SELECT поддерживается, но не рекомендуется. Дополнительные сведения см. в разделе TOP (Transact-SQL).
< select_list> Столбцы, выбираемые в результирующий набор. Список выбора представляет собой серию выражений, отделяемых запятыми. Максимальное число выражений, которое можно задать в списке выбора — 4 096.
*
Указывает на то, что все столбцы из всех таблиц и представлений в предложении FROM должны быть возвращены. Столбцы возвращаются таблицей или представлением, как указано в предложении FROM, и в порядке, в котором они находятся в таблице или представлении.
table_name | view_name | table_alias.*
Ограничивает область * указанной таблицей или представлением.
column_name
Имя возвращаемого столбца. Указывайте квалификатор для аргумента column_name во избежание неоднозначных ссылок, которые могут возникнуть, если в двух таблицах из предложения FROM содержатся столбцы с повторяющимися именами. Например, таблицы SalesOrderHeader и SalesOrderDetail в базе данных AdventureWorks2022
содержат столбцы с именем ModifiedDate. Если в запросе соединяются две таблицы, то данные о дате изменения из таблицы SalesOrderDetail могут быть заданы в списке выбора как SalesOrderDetail.ModifiedDate.
выражение
Является константой, функцией, любым сочетанием имен столбцов, констант и функций, соединенных оператором (операторами) или вложенным запросом.
$IDENTITY
Возвращает столбец идентификатора. Дополнительные сведения см. в разделах IDENTITY (свойство) (Transact-SQL), Инструкция ALTER TABLE (Transact-SQL) и Инструкция CREATE TABLE (Transact-SQL).
Если более чем одна таблица из предложения FROM содержит столбец со свойством IDENTITY, $IDENTITY должно быть задано с определенным именем таблицы, например T1.$IDENTITY.
$ROWGUID
Возвращает столбец с идентификаторами GUID строки.
Если более чем одна таблица из предложения FROM содержит столбец со свойством ROWGUIDCOL, $ROWGUIDCOL должно быть задано с определенным именем таблицы, например T1.$IDENTITY.
udt_column_name
Имя возвращаемого, определяемого пользователем типа данных CLR столбца.
Примечание.
SQL Server Management Studio возвращает пользовательские значения типов в двоичном представлении. Чтобы вернуть значения пользовательского типа в виде строки или в формате XML, используйте функцию CAST или CONVERT.
{ . | :: }
Указывает метод, свойство или поле пользовательского типа CLR. Используйте . для метода экземпляра (нестатического), свойства или поля. Используйте :: для статического метода, свойства или поля. Для обращения к методу, свойству или полю определяемого пользователем типа среды CLR необходимо разрешение EXECUTE для этого типа.
property_name
Открытое свойство столбца udt_column_name.
field_name
Открытый элемент данных столбца udt_column_name.
method_name
Открытый метод столбца udt_column_name, принимающий один или несколько аргументов. Метод method_name не может быть методом мутатора.
В следующем примере выбираются значения столбца Location
, определенного типом point
, из таблицы Cities
путем обращения к методу типа, названного 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_alias
Альтернативное имя, которым можно заменить имя столбца в результирующем наборе запроса. Например, для столбца «quantity» может быть указан псевдоним «Quantity», «Quantity to Date» или «Qty».
Кроме того, псевдонимы используются для указания имен для результатов выражений, например:
USE AdventureWorks2022;
GO
SELECT AVG(UnitPrice) AS [Average Price]
FROM Sales.SalesOrderDetail;
column_alias может использоваться в предложении ORDER BY. Однако он не может быть использован в предложениях WHERE, GROUP BY или HAVING. Если выражение запроса является частью инструкции DECLARE CURSOR, column_alias не может использоваться в предложении FOR UPDATE.
Замечания
Длина возвращаемых данных для столбцов типа text или ntext, включенных в список выбора, устанавливается в минимальное значение из следующих: фактический размер столбца text, значение настройки TEXTSIZE сеанса по умолчанию или жестко заданное в приложении ограничение. Чтобы изменить длину возвращаемого текста для сеанса, используйте инструкцию SET. По умолчанию ограничение на длину возвращаемых при помощи инструкции SELECT текстовых данных равно 4 000 байт.
Sql Server ядро СУБД вызывает исключение 511 и откатывает текущую инструкцию выполнения, если происходит одно из следующих действий:
Следствием инструкции SELECT является строка результата или строка промежуточной таблицы, превышающая 8 060 байт.
Инструкции DELETE, INSERT или UPDATE производят действия со строкой, превышающей 8 060 байт.
Ошибка возникает в случае, если не указано имя столбца, созданного при помощи инструкции SELECT INTO или CREATE VIEW.
См. также
Примеры использования инструкции SELECT (Transact-SQL)
Выражения (Transact-SQL)
SELECT (Transact-SQL)