Выражения в sql запросе

Обновлено: 22.12.2024

Сочетание символов и операторов, используемое компонентом Компонент SQL Server Database Engine для вычисления одиночного значения данных. Отдельные константы, переменные, столбцы и скалярные функции являются примерами простых выражений. Для соединения двух и более простых выражений в одно сложное можно использовать операторы.

Синтаксис

Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.

Аргументы

Термин Определение
constant Символ, представляющий одно конкретное значение данных. Дополнительные сведения см. в статье Константы (Transact-SQL).
scalar_function Единица синтаксиса Transact-SQL, который предоставляет определенную службу и возвращает одиночное значение. scalar_function может быть встроенной скалярной функцией, такой как SUM, GETDATE или CAST, либо определяемыми пользователем скалярными функциями.
[ table_name . ] Имя или псевдоним таблицы.
column Имя столбца. Только имя столбца используется в выражении.
variable Имя переменной или параметр. Дополнительные сведения см. в статье DECLARE @local_variable (Transact-SQL).
( expression ) Любое допустимое выражение из определенных в этом разделе. Скобки являются операторами группировки, гарантирующими, что все операторы выражения внутри скобок будут выполнены, прежде чем результирующее выражение будет объединено с другим.
( scalar_subquery ) Вложенный запрос, возвращающий одиночное значение. Пример:

+ обозначает положительное число.

- обозначает отрицательное число.

Результаты выражения

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

При объединении двух выражений с помощью операторов сравнения или логических операторов результат будет иметь логический тип данных и может принимать одно из следующих значений: TRUE, FALSE или UNKNOWN. Дополнительные сведения о логических типах данных см. в разделе Операторы сравнения (Transact-SQL).

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

Сложные выражения, составленные из нескольких символов и операторов, вычисляются в одиночные результаты. Тип данных, параметры сортировки, точность и значение результирующего выражения определяются объединением составляющих выражений (по два за один раз) до тех пор, пока не будет получен конечный результат. Последовательность, в которой эти выражения объединяются, зависит от приоритета операторов в выражении.

Комментарии

Два выражения можно объединить каким-либо оператором, если оба они относятся к типам данных, поддерживаемым оператором, и выполняется хотя бы одно из следующих условий.

Выражения относятся к одному типу данных.

Тип данных с более низким приоритетом может быть неявно преобразован в тип данных с более высоким приоритетом.

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

Если неявное или явное преобразование не поддерживается, эти два выражения объединить невозможно.

Параметры сортировки любого выражения, результатом которого является символьная строка, определяются правилами очередности параметров сортировки. Дополнительные сведения см. в статье Очередность параметров сортировки (Transact-SQL).

В языке программирования, таком как C или Microsoft Visual Basic, вычисление выражения всегда приводит к получению единственного результата. Выражения в списке Transact-SQL подчиняются правилу: выражение вычисляется отдельно для каждой строки в результирующем наборе. У отдельных выражений могут быть различные значения в каждой строке результирующего набора, но у каждой строки имеется только одно значение для выражения. Например, в следующей инструкции SELECT выражениями являются как ссылка на ProductID , так и значение 1+2 в списке выбора:

Выражение 1+2 дает результат 3 в каждой строке результирующего набора. Несмотря на то, что выражение ProductID формирует уникальное значение для каждой строки в результирующем наборе, в каждой строке содержится только одно значение для ProductID .

Читайте также: