我的查询是使用Select为单个变量分配多行 在存储过程中查询 例如: 我从Employee表中获得了10个(比如1到10个)员工ID 声明@id int
select @id =EmpId from Employee
select @id
这将返回10行(即员工ID,假设a中有10行 table)现在我的问题是我将如何在单个变量中获取所有行 并逐一使用该员工ID进行一些计算。
答案 0 :(得分:14)
您不能将10条记录插入一个变量 你能做的是:
declare @id table (id int)
insert into @id (id)
select EmpId from Employee
select * from @id
我们在这里做的是创建一个表变量,它将1到10作为单独的行插入。你现在可以随桌做任何你想做的事。
答案 1 :(得分:2)
试试这个:
declare @tmp table(EmpId int)
insert into @tmp
select EmpId From Employee
update Employee
set IsActive = 1
where EmpID in (
Select EmpId from @tmp)
答案 2 :(得分:1)
您可以将每个行压缩成一个变量,但是当您想逐个处理输出时,我建议您避免使用这种方法:
{{1}}
答案 3 :(得分:0)
如果需要逐个处理行,则游标将非常有用。