Oracle语句中容易出错的Case..........When

1.简单的Case函数

select st.username,
       st.userid,
       case st.sex
         when '1' then
          ''
         when '2' then
          ''
         else
          '其他'
       end sex
  from students st
View Code

2.Case搜索函数

select st.username,
       st.userid,
       case
         when st.sex = '1' then
          ''
         when st.sex = '2' then
          ''
         else
          '其他'
       end sex
  from students st
View Code

以上的两个case when所实现的功能是一致的

注:还有一个需要注重的问题,case函数只返回第一个符合条件的值,剩下的case部分将会被自动忽略。如下,你永远得不到”第二类“

select case
         when col_1 in ('a', 'b') then
          '第一类'
         when col_1 in ('a') then
          '第二类'
         else
          '其他'
       end divclass
  from dual
View Code

 

posted @ 2020-04-21 15:30  码农阿亮  阅读(366)  评论(0编辑  收藏  举报