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

Posted

技术标签:

【中文标题】如何在不使用游标的情况下一次将查询结果分配给多个变量?【英文标题】:How I can assign the result of a query to multiple variables at once without use a cursor? 【发布时间】:2012-07-27 18:02:43 【问题描述】:

当我需要将 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 

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

【问题讨论】:

【参考方案1】:

你可以这样做:

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

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

【讨论】:

【参考方案2】:
Select @Max = max(field_name), @Min = min(field_name) from table_name 

还是我对您的要求有所了解?

【讨论】:

以上是关于如何在不使用游标的情况下一次将查询结果分配给多个变量?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在 Swift 中一次将委托分配给同一类的多个对象?

在不使用 SQL 游标的情况下插入行和更新表

在函数中,如何在不使用 ref 游标的情况下返回多个值?

如何在不影响实际文档的情况下修改 Mongoose 中的结果查询?

sql中如何使一列中的多个重复数据只显示一次, 求大神指导,使得图中的班简名重复的只显示一次。

如何在不使用 Sybase/Perl 中的游标的情况下从表/文件中的 2 行中获取结果集中的一行