G-4220: Try to use CASE rather than DECODE.
Minor
Maintainability, Portability
Reason
decode
is an ORACLE specific function hard to understand and restricted to SQL only. The “newer” case
function is much more common, has a better readability and may be used within PL/SQL too. Be careful that decode
can handle null
values, which the simple case
cannot - for such cases you must use the searched case
and is null
instead.
Example (bad)
| select decode(dummy, 'X', 1
, 'Y', 2
, 'Z', 3
, 0)
from dual;
|
Example (good)
| select case dummy
when 'X' then 1
when 'Y' then 2
when 'Z' then 3
else 0
end
from dual;
|
Example (bad)
| select decode(dummy, 'X', 1
, 'Y', 2
, null, -1
, 0)
from dual;
|
Example (good)
| select case
when dummy = 'X' then 1
when dummy = 'Y' then 2
when dummy is null then -1
else 0
end
from dual;
|