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

标签 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 

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

最佳答案

您可以这样做:

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

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

关于sql - 如何在不使用游标的情况下一次将查询结果分配给多个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11693214/

相关文章:

mysql - 当我尝试通过连接从多个表中删除时出现 SQL 语法错误

mysql - 创建一个计算 SQL 列,用于维护每个客户的运行订单总数

sql - 批量插入到特定列?

xml - 将表迁移到 Sql XML 字段

mysql - SQL 选择查询最大值

mysql - 使用大小写按计算列进行过滤和排序(未找到列)

sql - 如何在不先备份的情况下缩小日志文件?

sql - 通过OLE DB命令将SSIS变量值作为SP的参数传递

sql-server - SQL Server 2005中的tran和transaction有什么区别

tsql - 如何获取第一列不为空