Oracle、MySQL兼容 – DECODE
DECODE的用法
DECODE( expression , search , result [, search , result]... [, default] )
若 expression = search,则返回紧接着search 的 result,否则返回 default,若无default,则返回 null。
DECODE兼容
接下来以三个参数、四个参数为例进行兼容。
DECODE(expression , search , result)
-- Oracle
SELECT DECODE(3,3,1) FROM DUAL; -- 1
SELECT DECODE(3,2,1) FROM DUAL; -- NULL
-- 兼容
select case 3 when 3 then 1 else null end; -- 1
select case 3 when 2 then 1 else null end; -- NULL
DECODE(expression , search , result,default)
-- Oracle
SELECT DECODE(3,3,1,0) FROM DUAL; -- 1
SELECT DECODE(3,2,1,0) FROM DUAL; -- 0
-- 兼容
select case 3 when 3 then 1 else 0 end; -- 1
select case 3 when 2 then 1 else 0 end; -- 0