这工作正常:
select
case (1+2) -- (or_some_more_complicated_formula_yielding_a_numeric_result)
when 200 then '200'
when 100 then '100'
else 'other'
end hi_med_low
from dual ;
但我需要做更多这样的事情:
select
case (1+2) -- (or_some_more_complicated_formula_yielding_a_numeric_result)
when greater than 200 then 'high'
when less than 100 then 'low'
else 'medium'
end hi_med_low
from dual ;
建议?
最佳答案
case
支持评估 bool 条件的语法。它不像您希望的那样干净,因为您需要重新编写每个表达式,但它可以完成工作:
select
case
when (1+2) > 200 then 'high'
when (1+2) < 100 then 'low'
else 'medium'
end hi_med_low
from dual ;
一种可能的缓解措施是对公式使用子查询,因此您只需编写一次:
select
case
when formula > 200 then 'high'
when formula < 100 then 'low'
else 'medium'
end hi_med_low
from (select (1+2) AS formula from dual);
关于sql - 您如何使用 Oracle Case Statement 测试不等式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23894997/