Sql select into variable

ОБЛАСТЬ ПРИМЕНЕНИЯ: 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 |

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

Читайте также:  Resident evil 2 remake клэр арты

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.

Читайте также:  Realtek rtl8139 810x family fast ethernet nic

Результирующий набор: 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.

When you need to retrieve a single row from a table or query, you can use the following syntax in SQL Server:

But what happens if SELECT returns multiple rows?

Assume we have the following table definition and data:

Let’s run SELECT and output data:

Note that when you want to retrieve one row, but multiple rows may meet the search condition, you have to check @@ROWCOUNT > 0, not @@ROWCOUNT = 1 to define if a row exists:

When you use TOP 1 you can safely check @@ROWCOUNT = 1 to define if a row was found.

I have the following code in one of my Sql (2008) Stored Procs which executes perfectly fine:

So the question for you guys is is there a possibility to do something along the lines of:

So that I could reuse this data from memory in other following statements? SQL Server throws a fit with the above statement, however i don’t want to have to create separate variables and initialize each one of them via a separate SELECT statement against the same table. UGH.

Читайте также:  Автомобиль не стоит на учете в налоговой

Any suggestions on how to achieve something along the lines without multiple queries against the same table?

Rate this post

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

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