oracle中decode和case when
oracle转义或者替换通常使用decode和case when子句,当转义字段一一对应时使用decode比较好,当多对一的情况使用case when;
下面举例说明两者用法
decode:
SELECT a.c_status,decode(a.c_status,'1','Completed','Canceled') status FROM tconfirm a WHERE a.d_cdate = '20100514';
结果截图
case when:
SELECT a.c_businflag,(CASE WHEN a.c_businflag IN ('01') THEN 'In' WHEN a.c_businflag IN ('03','04') THEN 'Out' ELSE a.c_businflag END) Trasaction
FROM tconfirm a WHERE a.c_businflag IN ('01','03','04') AND a.d_cdate = '20100514';
结果部分截图
除此之外还可以将以上两个转义方法用到where字句中作条件筛选, 暂不详述.