我的结果集中有三列;
o.id o.value_one o.value_two o.value_three
---- ----------- ----------- -------------
1 1.00 0.00 0.00
2 1.00 1.00 0.00
3 1.00 1.00 1.00
4 0.00 1.00 1.00
5 0.00 0.00 1.00
6 0.00 0.00 0.00
我想比较所有三个值列,并返回不是0.00的列值。
所以我会回来;
o.id o.new_value
---- -----------
1 1.00
2 1.00
3 1.00
4 1.00
5 1.00
感谢您的帮助! 克里斯
答案 0 :(得分:3)
SELECT o.id, COALESCE(NULLIF(o.value_one, 0.0),
NULLIF(o.value_two, 0.0),
NULLIF(o.value_three, 0.0)) AS new_value
FROM Foo
答案 1 :(得分:0)
select id,
decode(value_one, 0,
decode(value_two, 0
decode(value_three, 0, 0, value_three),
value_two),
value_one) new_value
from ...
无需所有表情评估。
答案 2 :(得分:0)
您可能还会考虑涉及GREATEST的表达式,例如:
GREATEST(o.value_one, o.value_two, o.value_three)