I\'m looking for a string function that works like Oracle\'s DECODE
Having table tab
with a single column col
col
----
a
b
c
d
It may be easier to read and to inspect if you avoid nesting by using a flat CASE WHEN THEN expression :
SELECT
CASE
WHEN col = 'a' THEN 1
WHEN col = 'b' THEN 2
ELSE 9
END dec
FROM tab
You could write a nested if
statement.
Query:
select col
, if(col='a', 1, if(col='b', 2, 9)) dec
from table
Output:
---------
col | dec
---------
a 1
b 2
c 9
d 9