【问题标题】: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'

感谢任何帮助。

【问题讨论】:

    标签: sql sql-server tsql aggregate-functions


    【解决方案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

    【讨论】:

    • 谢谢!这正是我需要的!
    猜你喜欢
    • 2011-04-22
    • 2012-06-28
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多