如何在不使用游标的情况下一次将查询结果分配给多个变量?

时间:2012-07-27 18:02:44

标签: sql sql-server sql-server-2005

当我需要在变量中存储SQL语句的结果时,我可以使用像这样的代码

declare @Max as int
set @Max=(select max(field_name) from table_name)

但现在我想知道是否有可能对多个变量做同样的事情,比如像

这样的句子
select max(field_name), min(field_name) from table_name

我如何将结果存储在两个名为@Max和@Min的变量中?

我知道使用游标可以做到这一点

DECLARE @Max as int, @Min as int
DECLARE cursor_minmax CURSOR FOR
Select max(field_name), min(field_name) from table_name
OPEN cursor_minmax 
FETCH NEXT FROM cursor_minmax  INTO @Max,@Min
CLOSE cursor_minmax 
DEALLOCATE cursor_minmax 

但我想知道是否可以在不使用游标的情况下分配这些值。

2 个答案:

答案 0 :(得分:6)

您可以这样做:

select @max =  max(field_name), @min = min(field_name)
from table_name

我明白了。 。 。你的困惑是你想使用“设置”。您只能使用“set”设置一个值。您可以使用“选择”设置任意数量的值。

答案 1 :(得分:0)

Select @Max = max(field_name), @Min = min(field_name) from table_name 

或者我错过了对你问的问题的理解?