Sql select в переменную

ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server База данных SQL Azure Azure Synapse Analytics (хранилище данных SQL) Parallel Data Warehouse APPLIES TO: SQL Server Azure SQL Database Azure Synapse Analytics (SQL DW) Parallel Data Warehouse

Присваивает локальную переменную значению выражения. Sets a local variable to the value of an expression.

Для присваивания переменных рекомендуется использовать инструкцию SET @local_variable вместо SELECT @local_variable. For assigning variables, we recommend that you use SET @local_variable instead of SELECT @local_variable.

Синтаксические обозначения в Transact-SQL Transact-SQL Syntax Conventions

Синтаксис Syntax

Аргументы Arguments

@local_variable @local_variable
Это объявленная переменная, которой должно быть присвоено значение. Is a declared variable for which a value is to be assigned.

<= | += | -= | *= | /= | %= | &= | ^= | |= > <= | += | -= | *= | /= | %= | &= | ^= | |= >
Присвоить значение справа переменной слева. Assign the value on the right to the variable on the left.

Составной оператор присваивания: Compound assignment operator:
| оператор operator | действие action |
|——|——|
| = | Присваивает следующее за ним выражение переменной. Assigns the expression that follows, to the variable. |
| += | Сложение и присваивание Add and assign |
| -= | Вычитание и присваивание Subtract and assign |
| *= | Умножение и присваивание Multiply and assign |
| /= | Деление и присваивание Divide and assign |
| %= | Остаток от деления и присваивание Modulo and assign |
| &= | Выполнение побитовой операции AND и присваивание Bitwise AND and assign |
| ^= | Выполнение побитовой операции XOR и присваивание Bitwise XOR and assign |
| |= | Выполнение побитовой операции OR и присваивание Bitwise OR and assign |

Читайте также:  Oem install for manufacturers что это ubuntu

expression expression
Любое допустимое выражение expression. Is any valid expression. В их число также входит скалярный вложенный запрос. This includes a scalar subquery.

Remarks Remarks

SELECT @local_variable обычно используется для возвращения одиночного значения в переменную. SELECT @local_variable is typically used to return a single value into the variable. Однако, если аргумент expression является именем столбца, может вернуться несколько значений. However, when expression is the name of a column, it can return multiple values. Если инструкция SELECT возвращает более одного значения, переменной присваивается последнее возвращенное значение. If the SELECT statement returns more than one value, the variable is assigned the last value that is returned.

Если инструкция SELECT не возвращает ни одной строки, переменная сохраняет свое текущее значение. If the SELECT statement returns no rows, the variable retains its present value. Если аргумент expression является скалярным вложенным запросом, который не возвращает значений, переменная принимает значение NULL. If expression is a scalar subquery that returns no value, the variable is set to NULL.

Одна инструкция SELECT может инициализировать несколько локальных переменных. One SELECT statement can initialize multiple local variables.

Инструкция SELECT, содержащая назначение переменной, не может быть использована для выполнения операций по получению типичного результирующего набора. A SELECT statement that contains a variable assignment cannot be used to also perform typical result set retrieval operations.

Примеры Examples

A. A. Используйте инструкцию SELECT @local_variable для возвращения одиночного значения Use SELECT @local_variable to return a single value

В следующем примере переменной @var1 присвоено значение Generic Name . In the following example, the variable @var1 is assigned Generic Name as its value. Запрос к таблице Store не возвращает строк, потому что в ней отсутствует значение, указанное для CustomerID . The query against the Store table returns no rows because the value specified for CustomerID does not exist in the table. Переменная сохраняет значение Generic Name . The variable retains the Generic Name value.

Читайте также:  Rise of the tomb raider характеристики

Результирующий набор: Here is the result set.

Б. B. Используйте инструкцию SELECT @local_variable для возвращения значения NULL Use SELECT @local_variable to return null

В следующем примере вложенный запрос используется для присвоения значения @var1 . In the following example, a subquery is used to assign a value to @var1 . Так как значение, заданное для CustomerID , не существует, вложенный запрос не возвращает значение и переменная принимает значение NULL . Because the value requested for CustomerID does not exist, the subquery returns no value and the variable is set to NULL .

Результирующий набор: Here is the result set.

Делаю запрос на получение int значения.Можно ли присвоить переменной резултат этого запроса?

Такая конструкция не работает.Это вообще возможно?

3 ответа 3

Обычно это делается так:

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

Запрос нужно обернуть в скобки. То есть

ну и позаботиться о том, чтобы он возвращал только одно значение, если это не так

в mysql можно не объявлять переменную, а сразу воспользоваться ей

Всё ещё ищете ответ? Посмотрите другие вопросы с метками sql-server sql или задайте свой вопрос.

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2020 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2020.1.17.35809

В SQL ноль, но взялись за хранимые процедуры? Смело!

Проблемы с объявлением переменных в блоке declare у вас потому, что вместо language sql стоит использовать language plpgsql. А после объявление переменной можно будет сделать

[2016-10-30 14:45:44] [42702] ERROR: column reference "id" is ambiguous
Подробности: It could refer to either a PL/pgSQL variable or a table column.
Где: PL/pgSQL function search_movies(character varying) line 8 at SQL statement

Rate this post

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *