`

plsql强化case/when/then

阅读更多

Oracle/PLSQL: Case Statement

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

In Oracle 9i, you can use the case statement within an SQL statement. It has the functionality of an IF-THEN-ELSE statement.
译:在Oracle 9i中,你可以在SQL语句中使用case条件。它具有IF-THEN-ELSE条件的功能。
The syntax for the case statement is:
译:语法如下
CASE expression
WHEN condition_1 THEN result_1
WHEN condition_2 THEN result_2
...
WHEN condition_n THEN result_n
ELSE result END
expression is the value that you are comparing to the list of conditions. (ie: condition_1, condition_2, ... condition_n)
译:expression就是要与条件比较的值。(例如:条件condition_1, condition_2, ... condition_n)
condition_1 to condition_n must all be the same datatype. Conditions are evaluated in the order listed. Once a condition is found to be true, the case statement will return the result and not evaluate the conditions any further.
译:条件condition_1到 condition_n必须具有相同的数据类型。条件是按列表顺序赋值,一旦一个条件为真了,case条件就会返回结果并且不会再次去执行该条件了
result_1 to result_n must all be the same datatype. This is the value returned once a condition is found to be true.
译:结果result_1到 result_必须具有相同的数据类型。一旦有条件成立,这就是返回的值。
Note:
注:
If no condition is found to be true, then the case statement will return the value in the ELSE clause.
译:如果没有找到为真的条件,case将返回ELSE条件中值。
If the ELSE clause is omitted and no condition is found to be true, then the case statement will return NULL.
译:如果省略了ELSE条件并且也没有找到为真的条件,case条件将返回NULL。
You can have up to 255 comparisons in a case statement. Each WHEN ... THEN clause is considered 2 comparisons.
译:在case条件中最多可以有255个比较,每个WHEN ... THEN子被认为两次比较。
For Example:
You could use the case statement in an SQL statement as follows:
译:你可以在SQL语句中像如下使用case语句:
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;
 
The above case statement is equivalent to the following IF-THEN-ELSE statement:
译:下面的case条件等价于下面的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;
 
The case statement will compare each owner value, one by one.
译:case条件将一个一个的比较每个所有者的值:
One thing to note is that the ELSE clause within the case statement is optional. You could have omitted it. Let's take a look at the SQL statement above with the ELSE clause omitted.
译:要注意的一个就是ELSE在case条件中可选的,你可以省略它。让我们看一个关于上面语句省略ELSE的SQL语句。
Your SQL statement would look as follows:
select table_name,
CASE owner
WHEN 'SYS' THEN 'The owner is SYS'
WHEN 'SYSTEM' THEN 'The owner is SYSTEM' END
from all_tables;
With the ELSE clause omitted, if no condition was found to be true, the case statement would return NULL.
译:省略了ELSE条件,且没有找到为真的条件,case就会返加NULL

分享到:
评论

相关推荐

    PLSQL 个人自学总结

    PLSQL支持多种流程控制结构,如IF-THEN-ELSIF-ELSE、CASE语句用于条件判断,FOR循环、WHILE循环用于迭代,以及GOTO语句进行无条件跳转。此外,还有BEGIN-END块用于封装代码,PROCEDURE和FUNCTION用于创建自定义函数...

    PLSQL用户指南

    PLSQL支持多种控制流程语句,如IF-THEN-ELSIF-ELSE、CASE、FOR循环、WHILE循环等,允许根据条件或循环结构执行不同的代码段。 函数和过程是PLSQL中的重要概念,它们可以封装复杂的操作并重复使用。函数返回一个值,...

    PLSQL高级编程-结构化编程

    例如,可以使用RAISE语句抛出自定义异常,或使用 WHEN OTHERS THEN 处理所有未捕获的异常。 五、游标和数据处理 游标是PLSQL中处理单行结果集的关键工具。通过声明游标,我们可以逐行处理查询结果。配合FOR循环,...

    plsql编程个人认为比较好的基础事例

    PL/SQL支持多种流程控制语句,如IF-THEN-ELSE、CASE语句、LOOP、WHILE-LOOP等。这些语句可以用来实现更复杂的逻辑处理。 ##### IF-THEN-ELSE示例 ```plsql DECLARE v_age NUMBER := 18; BEGIN IF v_age >= 18 ...

    PLSQL触发器.pdf

    when inserting then raise_application_error(-20001, '周末不能增加员工'); when updating then raise_application_error(-20002, '周末不能修改员工'); when deleting then raise_application_error(-20003...

    12c 的新 PLSQL 功能

    when n / K <= K - 1 then To_Char(n / K, '999999') || ' K' -- 其他情况 end; end Print; ``` 在这个例子中,我们定义了一个用于格式化字节数量的函数,并且可以在 SQL 查询中通过 WITH 子句使用这个函数,...

    oracle PLSQL结构控制语句

    WHEN 表达式 1 THEN 语句序列 1 WHEN 表达式 2 THEN 语句序列 2 WHEN 表达式 n THEN 语句序列 n ELSE 语句序列 n+1 END CASE; ``` 在整个结构中,选择变量的值同表达式的值进行顺序匹配,如果相等,则执行相应的...

    PLSQL适合初学者。

    PLSQL还支持循环结构(FOR,WHILE),分支结构(IF-THEN-ELSIF-END IF,CASE),以及子程序(PROCEDURE和FUNCTION)。子程序可以封装复杂的逻辑,提高代码复用性,降低维护成本。例如,创建一个计算阶乘的函数: ``...

    PLSQL 学习笔记

    PLSQL提供IF-THEN-ELSIF-ELSE、CASE、WHILE和FOR循环等结构来实现逻辑控制。例如,用FOR循环遍历结果集: ```sql FOR i IN (SELECT * FROM employees) LOOP DBMS_OUTPUT.PUT_LINE(i.employee_name); END LOOP; ``` ...

    PLSQL作业 PLSQL作业 PLSQL作业 PLSQL作业 PLSQL作业 PLSQL作业

    2. **流程控制**:PL/SQL提供了IF-THEN-ELSIF-ELSE、CASE、FOR循环和WHILE循环等控制结构。例如,可以使用以下代码进行条件判断: ```sql IF my_num > 10 THEN -- 执行某些操作 ELSIF my_num = 10 THEN -- 执行...

    精通Oracle10g PLSQL编程

    - `CASE`语句:多分支选择,如`CASE expr WHEN condition1 THEN ... END CASE;` 3. 递归:通过调用自身实现的逻辑,如`PROCEDURE recursive_proc(param) IS ... END recursive_proc;` 三、PLSQL与SQL的结合 PLSQL...

    Oracle PLSQL编程精简版

    4. **流程控制语句**:PLSQL提供了条件判断(IF...ELSIF...ELSE)、循环(FOR, WHILE, LOOP)和分支语句(CASE),用于控制程序流程。例如,`IF VAR > 10 THEN ... END IF;`用于进行条件判断。 5. **集合操作**:...

    plsql全面参考手册

    6. **异常处理**:通过EXCEPTION关键字,PL/SQL允许程序员定义异常处理逻辑,比如使用WHEN OTHERS THEN捕获所有未明确定义的异常。 7. **控制流语句**:包括IF-THEN-ELSIF-ELSE,CASE,FOR,WHILE等,用于控制程序...

    PLSQL基础入门手册

    PLSQL中的控制流程结构与许多其他编程语言类似,包括条件语句(IF-THEN-ELSIF-ELSE)、循环(WHILE、FOR)、分支语句(CASE)等。例如,一个简单的IF-THEN语句如下: ```sql IF condition THEN statement(s); END ...

    PLSQL最佳实践

    - 示例:`CASE WHEN v_salary > 10000 THEN DBMS_OUTPUT.PUT_LINE('High salary.'); WHEN v_salary BETWEEN 5000 AND 10000 THEN DBMS_OUTPUT.PUT_LINE('Medium salary.'); ELSE DBMS_OUTPUT.PUT_LINE('Low salary.'...

    oracle - PLSQL.7z

    使用BEGIN-END块内的EXCEPTION关键字,可以捕获和处理运行时错误,比如通过RAISE语句重新抛出异常或使用WHEN OTHERS THEN处理未知异常。 5. **游标**: 游标是用于遍历查询结果集的机制,允许在PL/SQL中逐行处理...

    PLSQL.rar_oracle_plsql

    PL/SQL的控制结构包括IF-THEN-ELSIF-ELSE、CASE、FOR循环、WHILE循环等。例如,使用IF-THEN-ELSIF-ELSE结构进行条件判断: ```sql BEGIN IF condition THEN -- 执行代码块1 ELSIF another_condition THEN -- ...

    oracle plsql课堂笔记

    - **分析**:异常处理部分使用`WHEN OTHERS THEN`来捕获所有未明确处理的异常,并进行相应的处理。 #### 四、数据类型 PL/SQL支持多种数据类型,包括但不限于: - **VARCHAR2**:可变长度的字符串。 - **NUMBER**:...

    plsql示例大全

    1. **基础语法**:PL/SQL的基础包括变量声明、常量定义、条件语句(IF-THEN-ELSIF-ELSE)、循环结构(FOR、WHILE)、分支语句(CASE)以及异常处理(BEGIN-EXCEPTION-END)。这些是编写任何PL/SQL程序的基础,理解...

    PLSQL.pdf,学习oracle必备手册

    4. **控制流语句**:学习如何使用IF-THEN-ELSIF-ELSE、CASE、WHILE、FOR循环以及GOTO语句来控制程序的流程。 5. **SQL操作**:PLSQL可以嵌入SQL语句,用于查询、插入、更新和删除数据库中的数据。例如,你可以编写...

Global site tag (gtag.js) - Google Analytics