`
yinghuayu1324117
  • 浏览: 70563 次
  • 性别: Icon_minigender_2
  • 来自: 保定
文章分类
社区版块
存档分类

oracle笔记(十三)条件表达式

阅读更多

条件表达式 :IF-THEN-ELSE 逻辑

CASE expr WHEN comparison_expr1 THEN return_expr1

         [WHEN comparison_expr2 THEN return_expr2

          WHEN comparison_exprn THEN return_exprn

          ELSE else_expr]

END

 

DECODE(col|expression, search1, result1

                    [, search2, result2,...,]

                    [, default])

 

//为职位是Manager的员工发放5000元的奖金

SQL> select ename,job,case job when 'MANAGER' then nvl(sal,0)+5000  end  as "工资" from emp;

//员工的工资

SQL> select ename ,job,

  2  case job when 'MANAGER' then nvl(sal,0)+5000+nvl(comm,0)

  3  else nvl(sal,0)+nvl(comm,0)

  4  end

  5  from emp;

//改写成 decode的写法

SQL> select ename,job

  2  ,decode(job,'MANAGER', nvl(sal,0)+5000+nvl(comm,0),

  3  'CLERK',nvl(sal,0)+nvl(comm,0)+200,

  4  nvl(sal,0)+nvl(comm,0)) as "工资"

 5  from emp;

//作业: 当员工为Manger 5000  当员工为SALESMAN 1000 当员工为 clerk500

SQL> select ename,job,case job when 'MANAGER' then nvl(sal,0)+5000+nvl(comm,0)

when 'SALESMAN' then nvl(sal,0)+1000+nvl(comm,0)

 when 'CLERK'then nvl(sal,0)+500+nvl(comm,0)

else nvl(sal,0)+nvl(comm,0)

end from emp;

ENAME      JOB       CASEJOBWHEN'MANAGER'THENNVL(SA

---------- --------- ------------------------------

SMITH      CLERK                               1300

ALLEN      SALESMAN                            2900

WARD       SALESMAN                            2750

JONES      MANAGER                             7975

MARTIN     SALESMAN                            3650

BLAKE      MANAGER                             7850

CLARK      MANAGER                             7450

SCOTT      ANALYST                             3000

KING       PRESIDENT                           5000

TURNER     SALESMAN                            2500

ADAMS      CLERK                               1600

JAMES      CLERK                               1450

FORD       ANALYST                             3000

MILLER     CLERK                               1800

kou%kou%                                          0

xiao%lin                                          0

xiao%lin                                          0

 

17 rows selected

SQL> select ename,job,decode(

  2  job,'MANAGER',nvl(sal,0)+5000+nvl(comm,0),

  3  'SALESMAN',nvl(sal,0)+1000+nvl(comm,0),

  4  'CLERK',nvl(sal,0)+500+nvl(comm,0))

  5  as "工资" from emp;

ENAME      JOB               工资

---------- --------- ----------

SMITH      CLERK           1300

ALLEN      SALESMAN        2900

WARD       SALESMAN        2750

JONES      MANAGER         7975

MARTIN     SALESMAN        3650

BLAKE      MANAGER         7850

CLARK      MANAGER         7450

SCOTT      ANALYST   

KING       PRESIDENT

TURNER     SALESMAN        2500

ADAMS      CLERK           1600

JAMES      CLERK           1450

FORD       ANALYST  

MILLER     CLERK           1800

kou%kou%            

xiao%lin            

xiao%lin            

 

17 rows selected

 

分享到:
评论

相关推荐

    HTML笔记. J2EE笔记. Javascript笔记. JAVA笔记.oracle 笔记.Linux笔记.tomcat笔记.面试问题.数据结构.听韩顺平的笔记.正则表达式.

    HTML笔记. J2EE笔记. Javascript笔记. JAVA笔记.oracle 笔记.Linux笔记.tomcat笔记.面试问题.数据结构.听韩顺平的笔记.正则表达式.等,我是我在上大学时学习做的笔记,拿出来和大家共享。。

    ORACLE_正则表达式摘录笔记

    Oracle正则表达式是Oracle数据库中用于处理字符串的强大工具,尤其在数据检索、过滤和转换等方面发挥着重要作用。本文将详细介绍Oracle正则表达式的各个方面,帮助读者快速掌握这一技术。 一、正则表达式基础 正则...

    韩顺平oracle视频笔记

    ### 韩顺平Oracle视频笔记知识点概览 #### 1. Oracle 用户管理 - **概念**:在Oracle数据库中,用户是用来管理访问权限的基本单位。每个用户都可以有自己的模式(schema),其中包含各种对象如表、视图等。 - **创建...

    oracle约束和索引笔记

    本笔记主要探讨了两个关键概念:约束和索引,这些都是Oracle数据库中的基础但至关重要的元素。 **1. 约束(Constraints)** 约束是Oracle数据库中用于确保数据完整性的规则。它们分为以下几种类型: - **非空约束...

    暑假培训学习笔记之 java正则表达式

    Java正则表达式是编程语言Java中的一个强大工具,用于处理字符串模式匹配和搜索替换操作。...对于“暑假培训学习笔记之 java正则表达式”这个主题,深入学习这些知识点将有助于提升你在Java编程中的文本处理能力。

    ORACLE经典学习笔记

    ### ORACLE经典学习笔记知识点概览 #### 第一章 ORACLE 命令 本章节主要介绍了Oracle数据库中常用的命令及其使用方法。 1. **查看参数文件**: `Desc v$parameter` - 这个命令用于查看Oracle的参数文件信息,通过...

    马士兵oracle笔记

    马士兵的Oracle笔记提供了许多关于Oracle SQL的基础操作和技巧,以下是其中的关键知识点: 1. **SQLPlus登录**:Oracle数据库可以通过SQLPlus工具访问,`sqlplus sys/bjsxt as sysdba`命令用于以超级管理员(SYS)...

    Oracle超详细学习笔记

    ### Oracle超详细学习笔记 #### 一、基本查询与数据操作 ##### 1. 最简单的查询 - **命令示例**: ```sql SELECT * FROM employees; DESC employees; SET LINESIZE 600; SET PAGESIZE 50; ``` - **解释**: ...

    ORACLE正则表达式摘录笔记[归类].pdf

    Oracle正则表达式是Oracle数据库中用于处理字符串的强大工具,尤其在数据检索、过滤和转换等方面发挥着重要作用。本文将详细解析Oracle正则表达式的各项关键知识点。 首先,正则表达式是一种模式匹配语言,它允许...

    达内corejava+Oracle+JDBC+XML笔记

    Oracle笔记可能涉及数据库的安装配置、SQL语言的基本操作、表的设计以及事务处理等内容。JDBC的学习笔记可能涵盖如何加载驱动、创建数据库连接、执行SQL语句、使用PreparedStatement、ResultSet处理结果集等步骤。...

    oracle教学4笔记

    以上内容详细介绍了 Oracle 数据库中基本查询的语法与原理、常用的算术运算与表达式、数值与字符函数的应用以及排序和模糊查询的方法。掌握这些基础知识对于日常数据库操作至关重要,可以帮助用户高效地管理和检索...

    oracle学习笔记-入门基础

    组合索引则是在两个或多个列上创建的索引,适用于那些列经常一起出现在WHERE条件中的情况。列的顺序会影响索引的效率,建议将最常被查询的列放在索引的最前面。例如,如果我们经常同时根据`owner`和`object_name`...

    最全的oracle笔记

    ### 最全的Oracle笔记知识点概览 #### 一、Oracle SQL基础 - **数据库与SQL:** Oracle SQL 是 Oracle 数据库系统中用于管理和查询数据的标准语言。SQL(Structured Query Language,结构化查询语言)分为几个主要...

    Oracle笔记

    Oracle笔记主要涵盖了Java编程语言的基础知识点,包括数据类型的使用、二进制转换、位运算、逻辑运算符、基本数据类型、类型转换、运算符、三元运算符等内容。本篇笔记详细记录了标识符的命名规则、不同进制之间的...

    oracle 学习笔记

    2. Where子句可以跟在SELECT、UPDATE、DELETE语句后面,其后面可以跟多个条件表达式,用于精确控制数据筛选。 3. 字符串在比较时是大小写敏感的。 4. Where子句中可以使用的运算符包括BETWEEN AND、IN、LIKE、IS ...

    oracle常用命令_笔记

    - `DECODE(expression, value1, result1, value2, result2, ..., default_result)`根据表达式的结果返回相应的值,如果没有匹配项,则返回默认结果。 以上是Oracle数据库中的一些基础命令和SQL语句,它们构成了...

    2023年马士兵oracle笔记.doc

    这份2023年的马士兵Oracle笔记涵盖了Oracle数据库的一些基础操作和关键概念,包括客户端工具、用户管理、表结构、SELECT语句、DISTINCT关键字、WHERE子句、ORDER BY子句以及SQL函数。 1. **客户端工具**: - **SQL...

    OracleDBA学习日记笔记

    在本资源中,我们可以看到作者Stephenzhou对 Oracle DBA 的学习笔记,这些笔记涵盖了 Oracle DBA 的基础知识、SQL 语言概述、条件表达式、函数、查询结构、分组函数、创建数据库、管理和维护表等方面的内容。...

    oracle 经典学习笔记

    Oracle数据库是一种广泛使用的大型关系型...Oracle数据库的学习笔记不仅能帮助初学者快速入门,而且对于中高级用户同样具备参考价值,特别是在学习和记忆数据库的众多命令和语法时,好的笔记可以显著提高学习效率。

    韩顺平Oracle笔记-查询.

    根据给定的“韩顺平Oracle笔记-查询”的文件信息,我们可以提炼出多个关于Oracle SQL查询的重要知识点。这些知识点不仅涵盖了基本的SQL语句构造,还包括了子查询、多表连接、聚合函数以及高级查询技术等内容。下面将...

Global site tag (gtag.js) - Google Analytics