根据查询结果查询设置变量
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
。
【讨论】:
谢谢!这正是我需要的!以上是关于根据查询结果查询设置变量的主要内容,如果未能解决你的问题,请参考以下文章