Как сохранить столбец выбора в переменной? - PullRequest
11 голосов
/ 25 февраля 2011

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

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

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

Ответы [ 3 ]

42 голосов
/ 25 февраля 2011
select @EmpID = ID from dbo.Employee

Или

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

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

Если вы хотите добавить больше столбцов к одной переменной (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 голосов
/ 25 февраля 2011

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

select @EmpId = Id from dbo.Employee

, либо

set @EmpId = (select Id from dbo.Employee)
1 голос
/ 25 февраля 2011

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

SELECT @EmpID = Id
  FROM dbo.Employee

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...