oracle 中 case的用法
oracle 中 case的用法
--简单Case函数
select CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END
--Case搜索函数
select CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END
Case函数不同于DECODE函数,在Case函数中,可以使用between,like,is null,in,exists等等。
--使用IN的时候:
SELECT keyCol, CASE WHEN keyCol IN (SELECT keyCol FROM tbl_B) THEN 'Matched' ELSE 'Unmatched' END Label FRO tbl_A;
--使用Exists的时候
SELECT keyCol, CASE WHEN EXISTS (SELECT * FROM tbl_B WHERE tbl_A.keyCol=tbl_B.keyCol) THEN 'Matched' ELSE 'Unmatched' END Label FROM tbl_A;
--相比较而言肯定使用第二种 exists 效率会更高。
划船不用桨、杨帆不等风、一生全靠浪