case when else 基本结构:
case n
when 1 then Action1;
when 2 then Action2;
when 3 then Action3;
else ActionOther;
end;
示例一:
SELECT col1, col2,
CASE
WHEN col3 > 1 AND col3 <2
THEN '1'
WHEN col3 > 2 AND col3 <3
THEN '2'
WHEN col3 > 3 AND col3 <4
THEN '3'
ELSE '4'
END mylevel
FROM table_51xit
case when else语法要点说明如下:
1、以CASE开头,以END结尾
2、分支中WHEN 后跟条件,THEN为显示结果
3、ELSE 为除此之外的默认情况,类似于高级语言程序中switch case的default,可以不加
4、END 后跟别名
示例:更复杂的示例代码:
select d.districtcode,(case when (substr(d.districtcode,3,6) = '0000') then ('100000'||substr(d.districtcode,1,2))
when (substr(d.districtcode,5,6) = '00') then ('100000'||substr(d.districtcode,1,2)||'00'||substr(d.districtcode,3,2))
else ('100000'||substr(d.districtcode,1,2)||'00'||substr(d.districtcode,3,2)||'00'||substr(d.districtcode,5,2))
end) unitcode From vcmdistrictcode d where
not exists
(
select 1 From vcmunitinfo u where u.unitdistrictcode=d.districtcode
and u.unitcode=(case when (substr(d.districtcode,3,6) = '0000') then ('100000'||substr(d.districtcode,1,2))
when (substr(d.districtcode,5,6) = '00') then ('100000'||substr(d.districtcode,1,2)||'00'||substr(d.districtcode,3,2))
else ('100000'||substr(d.districtcode,1,2)||'00'||substr(d.districtcode,3,2)||'00'||substr(d.districtcode,5,2))
end)
)
转自:http://tanw.iteye.com/blog/701023
分享到:
相关推荐
在 Oracle 数据库中,CASE WHEN 语句可以分为两种格式:简单 Case 函数和 Case 搜索函数。简单 Case 函数的语法是: ```sql CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' END ``` Case 搜索函数的语法是: ```...
### Oracle CASE WHEN 用法详解 #### 一、概述 在 Oracle 数据库中,`CASE WHEN` 表达式提供了一种在 SQL 查询中实现条件判断的方法,这使得开发人员能够在不使用 PL/SQL 的情况下编写更为灵活和复杂的查询语句。`...
SUM(CASE WHEN u.sex <> 1 AND u.sex <> 2 THEN 1 ELSE 0 END) AS 未知性别总数 FROM users u; ``` 这里,我们使用了 SUM 函数来累加 CASE 语句返回的值。当 `sex` 的值为 1 或 2 时,CASE 语句返回 1,否则返回 0...
在数据库管理和SQL编程中,`DECODE`函数和`CASE WHEN`语句是两种非常重要的逻辑判断工具,它们常用于处理条件分支和数据转换。在这篇文章中,我们将深入探讨这两种方法的用途、区别以及如何巧妙地运用它们。 首先,...
本“Oracle+PLSQL+语法手册”全面且详细地涵盖了这两者的各种关键概念、语法和实践应用。 一、Oracle数据库基础 Oracle数据库系统以其高可靠性、可扩展性和安全性著称,适用于企业级的数据存储和处理。主要组成部分...
在Oracle SQL中,有几个关键概念和技术值得深入理解,包括CASE WHEN语句、查看执行计划、文本操作、锁定和解锁表以及游标。以下是对这些知识点的详细解释: 1. **CASE WHEN语句**: CASE WHEN是SQL中的一个条件...
存储过程的语法包括声明变量、条件控制(IF-THEN-ELSE、CASE)、循环(WHILE、FOR)、异常处理(BEGIN-EXCEPTION-END)等。例如,以下是一个简单的存储过程示例: ```sql CREATE OR REPLACE PROCEDURE my_procedure...
- CASE 语句的结果类型由所有 THEN 和 ELSE 部分的结果类型决定,必须兼容。 5. **在实际应用中的扩展** CASE 函数在报表生成、数据分析、数据清洗等场景中都有广泛应用。例如,你可以根据员工的销售额确定他们的...
本文将详细介绍这两个函数的用法,并结合`CASE WHEN`语句来解决特定的问题。 `SUBSTR`函数用于从一个字符串中提取指定长度的子字符串。它有两种形式: 1. `SUBSTR(string, start_position, length)` 这种形式从`...
Oracle数据库中的`Decode()`函数和`CASE`语句都是用于条件判断和数据转换的重要工具,它们各有特点,适用场景也有所不同。以下是对这两个功能的详细比较。 首先,`Decode()`函数是一个简化的条件表达式,它允许你在...
通过上述对比,可以看出Oracle和SQL Server在存储过程的语法上有许多不同之处。在进行数据库迁移时,开发者需要仔细分析现有的Oracle存储过程,然后根据SQL Server的语法特点进行相应的转换。此外,还应考虑到性能...
4. **CASE_NOT_FOUND** (ORA-06592): 使用`CASE`语句时,如果`WHEN`子句中没有匹配的条件分支并且没有`ELSE`语句,就会引发此异常。解决办法是在`CASE`语句中提供一个默认的`ELSE`分支。 5. **COLLECTION_IS_NULL**...
Oracle PL/SQL是一种在Oracle数据库环境中使用的编程语言,它结合了SQL(结构化查询语言)的数据库操作能力和过程性编程语言的功能。PL/SQL的主要用途是编写存储过程、函数、触发器、游标等,以实现更复杂的数据处理...
Oracle数据库提供了多种截取字符串的方法,本文将介绍 substr 和 instr 两个常用函数,以及 case when then else end 语句的使用。 一、substr 函数 substr 函数用于截取字符串的一部分,语法为 `substr(string, ...
在SQL Server和Oracle数据库之间进行存储过程和函数的语法转换是一项常见的任务,特别是在数据库迁移或跨平台开发时。以下是一些关键的语法差异和转换规则: 1. **变量声明**: - SQL Server中,变量必须以`@`符号...
Oracle 语法及函数大全是 Oracle 数据库管理系统中使用的语法和函数的集合。了解这些语法和函数是使用 Oracle 数据库的关键。 数据操作 * SELECT 语句:从数据库表中检索数据行和列。 * INSERT 语句:向数据库表...
oracle系统学习总结包涵oracle的语法if else case when,触发器 游标函数等常用知识总结,希望对你有帮助!
CASE WHEN column_name > 10 THEN '大于10' ELSE '小于等于10' END AS "条件判断" FROM table_name; ``` 这段SQL展示了如何在查询中使用日期时间、字符串和逻辑判断函数。 总结,Oracle函数和API是数据库操作的...
存储过程中可以使用流程控制语句,如`IF...THEN...ELSE`, `CASE`, `LOOP`, `EXIT WHEN`等,实现条件判断和循环。 4. **异常处理**: 使用`BEGIN...EXCEPTION`结构处理运行时错误,例如: ```sql DECLARE v_num...
`CASE`语句以`CASE`开始,每个`WHEN`后面跟着一个条件和对应的返回结果,`ELSE`用于指定当所有条件都不满足时的默认结果。最后,`END`标记`CASE`语句的结束,可以给结果列起一个别名(`AS alias`)。 **注意事项**...