Sql 将查询结果指定给变量

Sql 将查询结果指定给变量,sql,sql-server-2008,Sql,Sql Server 2008,我希望得到的结果是@Lable=12而不是像下面这样写 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) 编辑: 然后,只需在函数中编写查询,即可给出结果 Select Top 1 @Label=AdminID from E

我希望得到的结果是
@Lable=12

而不是像下面这样写

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)
编辑:

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

Select Top 1 @Label=AdminID from ERP_AdminLogin
编辑1:

如果您只想使用内部查询,那么您可以编写如下代码

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
看看我试过什么

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
//创建函数以返回所需的值

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

谢谢您的快速回复。由于我正在编写一个函数,我必须返回一个字符串值。我只是举一个例子。查询没有给定的查询那么简单:)必须返回varchar值;return@LableWriting一个大查询dynamicallySorry。这对我没有帮助。它必须是…@sql='select top 1@lable=AdminId from Adminlogin',然后是Exec(@sql)
select top 1 id, dbo.f_abc() as TempCol  from abc