Как сохранить столбец select в переменной?

как сохранить столбец select в переменной?

попробуйте это, но введите мне ошибку. Неправильный синтаксис

declare @EmpId int
SELECT  dbo.Employee.Id as @EmpId FROM  dbo.Employee

Ответ 1

select @EmpID = ID from dbo.Employee

или

set @EmpID = (выберите id из dbo.Employee)

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

Если вы хотите добавить больше столбцов в одну переменную (MS SQL), есть возможность использовать переменную таблицы

DECLARE @sampleTable TABLE(column1 type1)
INSERT INTO @sampleTable
SELECT columnsNumberEqualInsampleTable FROM .. WHERE ..

Поскольку переменная типа таблицы не существует в Oracle и других, вы должны определить ее:

DECLARE TYPE type_name IS TABLE OF (column_type | variable%TYPE | table.column%TYPE [NOT NULL] INDEX BY BINARY INTEGER;

- Затем объявить переменную TABLE этого типа: variable_name type_name;

- Назначение значений переменной TABLE: variable_name(n).field_name := 'some text';

- Где 'n' - значение индекса

Ответ 2

Предполагая, что такой запрос вернет одну строку, вы можете использовать либо

select @EmpId = Id from dbo.Employee

или

set @EmpId = (select Id from dbo.Employee)

Ответ 3

Вот как назначить значение переменной:

SELECT @EmpID = Id
  FROM dbo.Employee

Однако вышеприведенный запрос возвращает более одного значения. Вам нужно добавить предложение WHERE, чтобы вернуть одно значение Id.