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

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

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

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

3 ответов


select @EmpID = ID from dbo.Employee

или

set @EmpID =(select id from dbo.Employee)

обратите внимание, что запрос select может возвращать несколько значений или строк. таким образом, вы можете написать запрос 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;

-- затем объявить таблицу переменная этого типа:variable_name type_name;

-- присвоение значений табличной переменной:variable_name(n).field_name := 'some text';

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


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

select @EmpId = Id from dbo.Employee

или

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

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

SELECT @EmpID = Id
  FROM dbo.Employee

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