oracle:case when 语句的区间用法

在练习case when 语句时,碰到一个例子,结果答案根本就不对,语法就通不过,开始想着是不是case 只能是一个固定的取值,毕竟例子内给的都是case是个固定的值,后来网上查了好久才发现还有区间的用法,下面附带例子

背景是Scott用户下面的EMP表(oracle创建时默认自带的)

算出每个部门,每个职位的平均工资和平均奖金(平均值包括没有奖金)如果平均奖金大于300,显示‘奖金不错‘,如果平均奖金100到300,显示‘奖金一般‘,如果平均奖金小于100,显示“基本没有奖金”,按部门编号降序,平均工资降序排列

select deptno,job,avg(sal)平均工资,avg(nvl(comm,0))平均奖金,case when avg(nvl(comm,0))>=300 then ‘奖金不错‘ avg(nvl(comm,0))>100 and avg(nvl(comm,0))<300 then ‘奖金一般‘ else ‘基本没有奖金‘ end 奖金状况 from emp group by deptno,job order by deptno desc, avg(sal) desc;

即case的前后不需要带参数,在when内将参数带入即可

时间: 2024-10-05 15:21:25

oracle:case when 语句的区间用法的相关文章

Oracle层级询语句connect by 用法详解

如果表中包含层级数据,那么你就可以使用层级查询从句选择行层级顺序. 1.层级查询从句语法 层级查询从句语法: { CONNECT BY [ NOCYCLE ] condition [AND condition]... [ START WITH condition ]| START WITH condition CONNECT BY [ NOCYCLE ] condition [AND condition]...} START WITH:指定层级的跟节点行. CONNECT BY:指定层级的父行于

Oracle insert all语句介绍

Oracle 中insert语句的高级用法,INSERT ALL 语句介绍: 1.无条件insert all 全部插入 CREATE TABLE t1(product_id NUMBER, product_name VARCHAR2(80),MONTH NUMBER); INSERT INTO t1 VALUES(111, '苹果',1); INSERT INTO t1 VALUES(222, '橘子',1); INSERT INTO t1 VALUES(333, '香蕉',1); COMMIT

Oracle CASE WHEN 用法介绍

Oracle CASE WHEN 用法介绍 1. CASE WHEN 表达式有两种形式 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASEWHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 2. CASE WHEN 在语句中不同位置的用法 2.1 SELECT CASE WHEN 用法 SELECT gra

oracle case where 复杂sql语句

update hr_user u set u.is_approve=(case when u.curr_org_id in (select t.org_id from hr_organization t start with t.org_id = 10001263 connect by prior org_id = t.org_id_parent) then 'N' ELSE 'Y' END); update hr_user u set u.is_approve=(case when u.cur

Oracle中是用case...when语句进行判断

使用case...when语句进行判断,其语法格式如下: case<selector> when<expression_1> then pl_sqlsentence_1; when<expression_2> then pl_sqlsentence_2; ... when<expression_n> then pl_sqlsentence_n; [else plsql_sentence;] end case; 具体例子如下: declare v_season

Oracle CASE WHEN

Oracle CASE WHEN 用法介绍 1. CASE WHEN 表达式有两种形式 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASEWHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 2. CASE WHEN 在语句中不同位置的用法 2.1 SELECT CASE WHEN 用法 SELECT gra

Oracle Case When的妙用

Case when 的用法 --简单Case函数 简单CASE表达式,使用表达式确定返回值. 语法: CASE search_expression WHEN expression1 THEN result1 WHEN expression2 THEN result2 ... WHEN expressionN THEN resultN ELSE default_result --搜索CASE表达式 使用条件确定返回值. 语法: CASE WHEN condition1 THEN result1 W

Oracle中HINT的30个用法

在SQL语句优化过程中,经常会用到hint, 以下是在SQL优化过程中常见Oracle中"HINT"的30个用法 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 例如: SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 2. /*+FIRST_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消

select case when if 的一些用法

概述:sql语句中的case语句与高级语言中的switch语句,是标准sql的语法,适用于一个条件判断有多种值的情况下分别执行不同的操作. 首先,让我们看一下CASE的语法.在一般的SELECT中,其语法格式如下: CASE   <单值表达式>        WHEN <表达式值> THEN <SQL语句或者返回值>        WHEN <表达式值> THEN <SQL语句或者返回值>        ...        WHEN <表