Выражение SELECT (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 в базе данных AdventureWorks содержат столбцы с именем ModifiedDate. Если в запросе соединяются две таблицы, то данные о дате изменения из таблицы SalesOrderDetail могут быть заданы в списке выбора как SalesOrderDetail.ModifiedDate.expression
Является константой, функцией, любым сочетанием имен столбцов, констант и функций, соединенных оператором (операторами) или вложенным запросом.$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) столбца.{ . | :: }
Указывает метод, свойство или поле определяемого пользователем типа 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 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 AdventureWorks;
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 Database Engine вызывает исключение номер 511 и осуществляет откат транзакции до момента выполнения текущей инструкции, если наблюдается одно из следующих явлений.
Следствием инструкции SELECT является строка результата или строка промежуточной таблицы, превышающая 8 060 байт.
Инструкции DELETE, INSERT или UPDATE производят действия со строкой, превышающей 8 060 байт.
Ошибка возникает в случае, если не указано имя столбца, созданного при помощи инструкции SELECT INTO или CREATE VIEW.
См. также