CASE 语句
CASE selector
WHEN value1 THEN action1;
WHEN value2 THEN action2;
WHEN value3 THEN action3;
…..
ELSE actionN;
END CASE;
CASE表达式
DECLARE
temp VARCHAR2(10);
v_num number;
BEGIN
v_num := &i;
temp := CASE v_num
WHEN 0 THEN 'Zero'
WHEN 1 THEN 'One'
WHEN 2 THEN 'Two'
ELSE
NULL
END;
dbms_output.put_line('v_num = '||temp);
END;
CASE搜索语句
CASE
WHEN (boolean_condition1) THEN action1;
WHEN (boolean_condition2) THEN action2;
WHEN (boolean_condition3) THEN action3;
……
ELSE actionN;
END CASE;
CASE搜索表达式
DECLARE
a number := 20;
b number := -40;
tmp varchar2(50);
BEGIN
tmp := CASE
WHEN (a>b) THEN 'A is greater than B'
WHEN (a<b) THEN 'A is less than B'
ELSE
'A is equal to B'
END;
dbms_output.put_line(tmp);
END;
SELECT CASE WHEN 的用法
select 与 case结合使用最大的好处有两点,一是在显示查询结果时可以灵活的组织格式,二是有效避免了多次对同一个表或几个表的访问。下面举个简单的例子来说明。例如表 students(id, name ,birthday, sex, grade),要求按每个年级统计男生和女生的数量各是多少,统计结果的表头为,年级,男生数量,女生数量。如果不用select case when,为了将男女数量并列显示,统计起来非常麻烦,先确定年级信息,再根据年级取男生数和女生数,而且很容易出错。用select case when写法如下:
SELECT grade, COUNT (CASE WHEN sex = 1 THEN 1 /*sex 1为男生,2位女生*/
ELSE NULL
END) 男生数,
COUNT (CASE WHEN sex = 2 THEN 1
ELSE NULL
END) 女生数
FROM students GROUP BY grade;
分享到:
相关推荐
在Oracle数据库中,`WHERE`子句是SQL查询语句的一部分,用于指定查询条件,而`CASE WHEN`语句则是一种条件表达式,允许我们基于不同的条件返回不同的值。将`CASE WHEN`嵌套在`WHERE`子句中,可以实现更复杂的逻辑...
Oracle CASE WHEN 多条件语句详解 CASE WHEN 语句是 SQL 中的一种条件语句,用于实现多个条件的判断和执行。它可以用来代替 IF 语句和 SWITCH 语句,在 Oracle 数据库中尤其常用。 CASE WHEN 语句的基本语法是: `...
### Oracle CASE 语句介绍及应用案例 #### 一、Oracle CASE 语句概述 在 Oracle 数据库中,CASE 语句是一种非常实用且灵活的条件判断表达式,它可以用于根据不同的条件返回不同的值。CASE 语句可以分为两种类型:...
1. CASE WHEN 表达式有两种形式 代码如下:–简单Case函数 CASE sex WHEN ‘1’ THEN ‘男’ WHEN ‘2’ THEN ‘女’ ELSE ‘其他’ END –Case搜索函数 CASEWHEN sex = ‘1’ THEN ‘男’ WHEN sex = ‘2’ ...
在 Oracle 数据库中,`CASE WHEN` 表达式提供了一种在 SQL 查询中实现条件判断的方法,这使得开发人员能够在不使用 PL/SQL 的情况下编写更为灵活和复杂的查询语句。`CASE WHEN` 与 `DECODE()` 函数相似,但因其符合 ...
mysql 中case when 遇到乱码解决。查询语句中含有case引起中文乱码解决方法
Oracle CASE 函数是一种在 SQL 查询中进行条件判断的表达式,它允许你在同一查询中根据不同的条件设置不同的返回值。这个函数在处理复杂的数据转换和分析时非常有用,尤其是在需要根据特定条件设置列的值时。以下是...
在阅读博客文章《decode函数与case when 的妙用》时,作者可能分享了一些具体的示例和使用技巧,帮助我们更好地理解和掌握这两种方法。通过学习和实践,我们可以将这些知识应用于日常的数据库操作,优化数据处理流程...
在自定义排序中,`CASE-WHEN`可以这样使用: ```sql SELECT * FROM table_date ORDER BY ( CASE DateStr WHEN 'Monday' THEN 1 WHEN 'Tuesday' THEN 2 WHEN 'Wednesday' THEN 3 WHEN 'Thursday' THEN 4 WHEN ...
【Oracle使用CASE判断解决多值问题】 在Oracle数据库中,面对多值判断的场景,我们经常需要对数据进行复杂的逻辑处理。在这个问题中,我们有一个专业表ZY_TAB,包含专业名称(ZY_NAME),专业代码(ZY_CODE),专业类型...
在Oracle SQL中,有几个关键概念和技术值得深入理解,包括CASE WHEN语句、查看执行计划、文本操作、锁定和解锁表以及游标。以下是对这些知识点的详细解释: 1. **CASE WHEN语句**: CASE WHEN是SQL中的一个条件...
在Oracle数据库中,进行多条件...如果你对Oracle数据库有更深入的兴趣,可以阅读更多相关的文章,如Oracle数据库启动阶段分析、虚拟专用数据库详细介绍、分页查询性能优化等,以便更好地理解和掌握Oracle数据库的使用。
在使用CASE WHEN进行行列转换时,如果不加聚合函数直接分组,可能会返回多条记录。这是因为CASE WHEN可以产生多个结果行,所以通常需要与GROUP BY或聚合函数如MAX结合使用,以确保正确地分组和汇总数据。 Oracle ...
不同于MyBatis `<if>` 标签在特定ORM框架下的应用,CASE WHEN是标准SQL的一部分,广泛支持于Oracle、SQL Server、MySQL等多种数据库系统乃至PL/SQL等SQL窗口。这意味着,无论身处何种开发环境或数据库平台,CASE ...
4. **CASE_NOT_FOUND** (ORA-06592): 使用`CASE`语句时,如果`WHEN`子句中没有匹配的条件分支并且没有`ELSE`语句,就会引发此异常。解决办法是在`CASE`语句中提供一个默认的`ELSE`分支。 5. **COLLECTION_IS_NULL**...
本文介绍了使用Oracle的SQL函数来实现工作日和节假日的分组统计,通过对工作日和节假日的判断和统计,可以更好地合理调度人力物力资源,制定节假日劳务补贴政策。本文主要介绍了使用Oracle的SQL函数来实现工作日和节...