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 效率会更高。
posted @ 2017-08-25 11:20  十月围城小童鞋  阅读(476)  评论(0编辑  收藏  举报