decode
语法如下:
DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )
Value 代表某个表的任何类型的任意列或一个通过计算所得的任何结果。当每个value值被测试,如果value的值为if1,Decode 函数的结果是then1;如果value等于if2,Decode函数结果是then2;等等。事实上,可以给出多个if/then 配对。如果value结果不等于给出的任何配对时,Decode 结果就返回else 。
例子
select product_id,decode(warehouse_id,1,'book',2,'computer',3,'vcd',4,'cd','unknown') kind from inventories.
?
case
当执行Oracle case语句执行多重条件分支时,如果条件选择符完全相同,并且条件表达式为相同条件选择,那么可以选择单一选择符进行等值比较,语法如下:?
case? 条件选择符
when? 条件值表达式1 then 要执行的操作1;
when? 条件值表达式2 then 要执行的操作2;
。。。。。。。
else?
要执行的操作。
end case;
例子
CASE sex?
WHEN '1' THEN '男'?
WHEN '2' THEN '女'?
ELSE '其他' END?
CASE
WHEN sex = '1' THEN '男'?
WHEN sex = '2' THEN '女'?
ELSE '其他' END