Oracleの条件式

MySQLとOracleが使用することができます

--条件表达式
--给EMP表中的员工起中文名字
select e.ename,
       case e.ename
         when 'SMITH' then '曹贼'
           when 'ALLEN' then '大耳贼'
             when 'WARD' then '诸葛小儿'
               else '无名'
                 end 
from emp e;

ここに画像を挿入説明
NOの場合、他の条件の他に、省略することができます。

select e.ename,
       case e.ename
         when 'SMITH' then '曹贼'
           when 'ALLEN' then '大耳贼'
             when 'WARD' then '诸葛小儿'
                 end 
from emp e;

その他はNULLです
ここに画像を挿入説明

--判断如果EMP表中员工工资高于3000显示高收入,低于3000但高于1500中等收入
--低于1500低收入
select e.sal,
       case 
         when e.sal>3000 then '高收入'
           when e.sal>1500 then '中等收入'
               else '低收入'
                 end 
from emp e;

ここに画像を挿入説明
Oracleは、専用の

--oracle专用条件表达式
select e.ename,
        decode(e.ename,
          'SMITH',  '曹贼',
            'ALLEN',  '大耳贼',
              'WARD',  '诸葛小儿',
                '无名')
                  
from emp e;

ここに画像を挿入説明

--oracle中除了起别名都用单引号
--oracle专用条件表达式
select e.ename,
        decode(e.ename,
          'SMITH',  '曹贼',
            'ALLEN',  '大耳贼',
              'WARD',  '诸葛小儿',
                '无名')"别名"
                  
from emp e;

別名は、引用符を倍にしないことがあり
ここに画像を挿入説明

おすすめ

転載: blog.csdn.net/qq_34721292/article/details/90550461