将查询结果分配给变量

时间:2015-05-19 09:22:10

标签: sql sql-server-2008

DECLARE @Label AS VARCHAR(2000)
DECLARE @SQL1 AS NVARCHAR(4000) 

SET @SQL1 = 'Select Top 1 AdminID from ERP_AdminLogin'

Exec (@SQL1)

Set @Label = Exec (@SQL1)

我希望将结果显示为@Lable = 12

2 个答案:

答案 0 :(得分:1)

相反,你写的如下

Select Top 1 @Label=AdminID from ERP_AdminLogin

编辑:

然后只需在函数中编写查询,就会给出结果

DECLARE @Label AS VARCHAR(2000)
Select Top 1 @Label=AdminID from ERP_AdminLogin
Set @Label = @Label + 'I' --do some query work here
--finally return the string
select @Label

编辑1:

如果您只想使用内部查询,那么您可以按如下方式编写

DECLARE @Label AS VARCHAR(2000)
DECLARE @SQL1 AS NVARCHAR(4000) 

SET @SQL1 = 'Select Top 1 @Label=AdminID from ERP_AdminLogin'

exec sp_executesql @SQL1, N'@Label VARCHAR(2000) out', @Label out

select @Label as Result

答案 1 :(得分:0)

看看我尝试了什么...

create table abc
(
  id int
)

insert into abc values (1);
insert into abc values (2);
insert into abc values (3);

//创建函数以返回所需的值

create function f_abc() RETURNS varchar(11) 
As
Begin
  DECLARE @Label AS VARCHAR(2000)
  DECLARE @SQL1 AS NVARCHAR(4000) 
  Select Top 1 @Label=id from abc
  return @Label
End

//现在只需调用此函数

select top 1 id, dbo.f_abc() as TempCol  from abc

Output