CnosDB是否支持CASE-WHEN查询?求该电池状态转换场景的方案
在CnosDB中实现数值转状态字符串的替代方案
针对你的需求,这里提供两种可行的实现方案,CnosDB均支持:
方案1:使用标准CASE表达式
你最初编写的CASE表达式写法是完全可行的,这属于标准SQL的条件判断语法,CnosDB原生支持,只是相关说明可能不在函数文档章节,而是基础SQL语法部分:
SELECT last("DischargingBattery"), CASE WHEN last("DischargingBattery") = 0 THEN 'IDLE' ELSE 'BUSY' END AS DischargingBatteryStatus FROM battery
方案2:使用IF函数简化实现
如果想要更简洁的写法,可以使用CnosDB支持的IF函数,适合这种二元判断的场景:
SELECT last("DischargingBattery"), IF(last("DischargingBattery") = 0, 'IDLE', 'BUSY') AS DischargingBatteryStatus FROM battery
IF函数的参数顺序为:判断条件、条件成立时的返回值、条件不成立时的返回值。
内容的提问来源于stack exchange,提问作者Munin
相关产品推荐
相关产品推荐

