oracle/plsql case条件语句的用法

语句语法

 代码如下 复制代码

CASE  [ expression ]
  WHEN condition_1 THEN result_1
  WHEN condition_2 THEN result_2
  ...
  WHEN condition_n THEN result_n
  ELSE result
END

expression 可选的。它的价值,你比较的条件清单。 (即:condition_1,condition_2,... condition_n)

condition_1到condition_n都必须是相同的数据类型。条件评估中列出的顺序。一个条件是一旦发现是真实的,case语句将返回的结果和不评价任何进一步的条件。

result_1到result_n都必须是相同的数据类型。这是返回的值一个条件是,一旦发现是真的。

注意:

如果没有条件为真,那么case语句将返回在ELSE子句里的值。

如果省略了ELSE子句和任何条件发现是真的,那么case语句将返回NULL。

最多可以有255在case语句比较。时,每个...条款被认为是2比较。

Applies To:

Oracle 9i, Oracle 10g, Oracle 11g

实例
你可以使用case语句在SQL语句如下:(包括表达式子句)

 代码如下 复制代码

select table_name,
CASE owner
  WHEN 'SYS' THEN 'The owner is SYS'
  WHEN 'SYSTEM' THEN 'The owner is SYSTEM'
  ELSE 'The owner is another value'
END
from all_tables;

或者你可以写SQL语句,使用这样的情况下声明:(省略了表达式子句)

 代码如下 复制代码

select table_name,
CASE
  WHEN owner='SYS' THEN 'The owner is SYS'
  WHEN owner='SYSTEM' THEN 'The owner is SYSTEM'
  ELSE 'The owner is another value'
END
from all_tables;

上述两个案例语句以下的IF - THEN- ELSE语句是等价的:

 代码如下 复制代码

IF owner = 'SYS' THEN
     result := 'The owner is SYS';

ELSIF owner = 'SYSTEM' THEN
    result := 'The owner is SYSTEM'';

ELSE
    result := 'The owner is another value';

END IF;

case语句会比较每一位业主的价值,一个接一个。

需要注意的一点是,在case语句的else子句是可选的的。你可以省略。让我们看看上面的SQL语句与ELSE子句省略。

您的SQL语句如下所示:

 代码如下 复制代码

select table_name,
CASE owner
  WHEN 'SYS' THEN 'The owner is SYS'
  WHEN 'SYSTEM' THEN 'The owner is SYSTEM'
END
from all_tables;

实例
下面就是一个例子,演示了如何使用case语句来比较不同条件下:

 

 代码如下 复制代码
select
CASE
  WHEN a < b THEN 'hello'
  WHEN d < e THEN 'goodbye'
END
from suppliers;
时间: 2024-07-30 10:20:53

oracle/plsql case条件语句的用法的相关文章

MySQL中if case条件语句基本用法

IF表达式 IF(expr1,expr2,expr3) 如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3.IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定 举例如下:  代码如下 复制代码 SELECT IF(score>=60,'pass','fail') FROM score; mysql> SELECT IF(1>2,2,3); ->

Linux中sh脚本case条件语句用法

case语句适用于需要进行多重分支的应用情况.         case分支语句的格式如下:             case 变量名 in                 模式1)             命令序列1             ;;                 模式2)             命令序列2          ;;                 *)             默认执行的命令序列             esac         case语句结构

asp.net select Case条件语句的使用方法

如果 testexpression 与任何 Case expressionlist 表达式匹配 ,则执行此 Case 子句和下一个 Case 子句之间的语句,对于最后 的子句,则会执行该子句到 End Select 之间的语句,然后控制权 会转到 End Select 之后的语句.如 testexpression 与多个 Case 子句中的 expressionlist 表达式匹配,则只有第一个匹配 后的语句被执行. Case Else 用于指示若在 testexpression 和任何其他 C

oracle case when 语句的用法详解_oracle

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 用法 复制代码 代码如下: SE

Oracle触发器中when语句的用法

案例:scott.emp表的销售员工资只能增加,不能减少 代码: CREATE OR REPLACE TRIGGER tr_emp_updBEFORE UPDATE OF salON empFOR EACH ROW --当更新销售员时才触发WHEN (OLD.job='SALESMAN')DECLAREBEGIN  IF(:NEW.sal<:OLD.sal) THEN    raise_application_error(-20013,'销售员工资不能降低!');  END IF;END;  

Flash ActionScript学习:深入研究条件语句

条件|语句 在上一节中,我们初步尝试了条件语句的用法,由于条件语句是一个使用频率极高的语句,所以我们有必要现在对它进行深入一些的探究. 一.条件语句的基本格式 if(条件表达式){当条件为真的时候,所要执行的命令} 这种语句是:当条件为真的时候,执行命令:否则什么也不做. 现在我们利用前面学过的知识.来做一个实例,此实例的要求是:点击按钮后,如果输入文本中的文字是"虫子",那么虫子就运动,否则虫子什么也不做.请按照下列步骤操作: 1.在舞台上用文字工具拖出一个文本框,打开属性面板,将其

深入研究条件语句(if)(转闪吧)_Flash As

学习目的:进一步掌握条件语句的用法,以达到可以独立运用的目的 教程: 在上一节中,我们初步尝试了条件语句的用法,由于条件语句是一个使用频率极高的语句,所以我们有必要现在对它进行深入一些的探究. 一.条件语句的基本格式 if(条件表达式){当条件为真的时候,所要执行的命令} 这种语句是:当条件为真的时候,执行命令:否则什么也不做. 现在我们利用前面学过的知识.来做一个实例,此实例的要求是:点击按钮后,如果输入文本中的文字是"虫子",那么虫子就运动,否则虫子什么也不做.请按照下列步骤操作:

oracle plsql 语句块的迷惑

问题描述 oracle plsql 语句块的迷惑 今天写了一个plsql语句块,逻辑是这样的,首先定义一个role_id 变量,从saa_role表中查出id放入变量role_id中,通过以role_id为条件去删除saa_userrole 表中数据.sql如下: declare role_id saa_role.id%type; begin select r.id into role_id from saa_role r where r.role_cname = '产品开发部人员'; dele

mysql case...when语句的几个用法

mysql case...when语句的几个用法 一般情况下,case ...when都用在select语句中,不过可以在其他子句中使用 1 在order by子句中进行自定义排序 Sql代码 show create table 20130225t1; CREATE TABLE `20130225t1` ( `id` tinyint(4) NOT NULL AUTO_INCREMENT, `b` char(1) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=Inno