如何将select列存储在变量中?
试试这个但是给我一个错误语法不正确
declare @EmpId int
SELECT dbo.Employee.Id as @EmpId FROM dbo.Employee
答案 0 :(得分:42)
select @EmpID = ID from dbo.Employee
或者
set @EmpID =(select id from 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'是指数值
答案 1 :(得分:2)
假设这样的查询会返回一行,您可以使用
select @EmpId = Id from dbo.Employee
或者
set @EmpId = (select Id from dbo.Employee)
答案 2 :(得分:1)
这是为变量赋值的方法:
SELECT @EmpID = Id
FROM dbo.Employee
但是,上面的查询返回了多个值。您需要添加WHERE
子句才能返回单个Id
值。