根据查询结果查询设置变量

Posted

技术标签:

【中文标题】根据查询结果查询设置变量【英文标题】:Query to set variable depending on query results 【发布时间】:2021-02-11 02:54:10 【问题描述】:

我有一个 TempResults 表,其中包含 Point、Value 列。

Point   Value
ZM1        0
ZM1-2   0,00023587

我正在尝试编写 SQL 查询:当任何点的值 =0 时,我需要设置 @dev=1,当两个值都不等于零时 @dev=2。如果任何值之一不等于零,我的查询设置 @dev=2。

DECLARE @DEV int;
SELECT @DEV = CASE 
WHEN Value=0 THEN 1
ELSE 2
END
FROM TempResults WHERE Point='ZM1' or Point = 'ZM1-2'

感谢任何帮助。

【问题讨论】:

【参考方案1】:

您可以使用条件聚合:

select @dev = min(case when value = 0 then 1 else 2 end)
from tempresults
where point in ('ZM1', 'ZM1-2')

基本上case 表达式将0 值转换为1 和其他2;剩下要做的就是计算组中的最小计算值。如果有0,则得到1,否则得到2

【讨论】:

谢谢!这正是我需要的!

以上是关于根据查询结果查询设置变量的主要内容,如果未能解决你的问题,请参考以下文章

设置变量结果,来自查询

SQL:为啥我不能为查询结果设置变量?

查询结果设置为变量 - powershell

根据 SQL 管理器中的 IF 语句设置变量

您如何设置 sqlalchemy 关系ihp,以便子查询负载将根据属性过滤我们的结果

mysql 返回的查询结果为空