case when...then...else...end的作用和decode作用相同,废话不多说,先举一个例子:
select SUM(CASE WHEN ','||R1.CONCLUSION||',' LIKE '%,1,%' THEN 1 else 0 END) CONCLUSION_1, SUM(CASE WHEN ','||R1.CONCLUSION||',' LIKE '%,2,%' THEN 1 else 0 END) CONCLUSION_2 from TASK_RECORD R1
上面的字段中TASK_RECORD表中字段 CONCLUSION的存储是以1,2,3...,n这样的方式存储,先在我要统计含有1,2...,n每一个有多少条记录。因为decode方法中判断的值必须是一个确定的值,所以不能使用此方法来解决,想要解决此问题必须使用模糊查询,只要有该标号的值就加1(+1)的方式;
总结:此方法比起decode要复杂,并且没有那么美观,不同的是该方法支持用判断条件和模糊查询等。
相关推荐
在 Oracle 数据库中,CASE WHEN 语句可以分为两种格式:简单 Case 函数和 Case 搜索函数。简单 Case 函数的语法是: ```sql CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' END ``` Case 搜索函数的语法是: ```...
在 Oracle 数据库中,`CASE WHEN` 表达式提供了一种在 SQL 查询中实现条件判断的方法,这使得开发人员能够在不使用 PL/SQL 的情况下编写更为灵活和复杂的查询语句。`CASE WHEN` 与 `DECODE()` 函数相似,但因其符合 ...
1. CASE WHEN 表达式有两种形式 代码如下:–简单Case函数 CASE sex WHEN ‘1’ THEN ‘男’ WHEN ‘2’ THEN ‘女’ ELSE ‘其他’ END –Case搜索函数 CASEWHEN sex = ‘1’ THEN ‘男’ WHEN sex = ‘2’ ...
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...
在阅读博客文章《decode函数与case when 的妙用》时,作者可能分享了一些具体的示例和使用技巧,帮助我们更好地理解和掌握这两种方法。通过学习和实践,我们可以将这些知识应用于日常的数据库操作,优化数据处理流程...
- `CASE WHEN condition THEN result ELSE alternative END`: 用于条件判断,根据条件返回不同结果。 以上只是Oracle 10g函数库中的一小部分,实际应用中还有许多其他函数,如窗口函数、游标处理函数、正则表达式...
- Oracle的`CASE...WHEN...THEN...END;` - SQL Server的`CASE WHEN...THEN...END;` 8. **游标**: - Oracle中定义游标使用`CURSOR`关键字,打开、关闭和循环使用`OPEN`, `FETCH`, `CLOSE`,如: ```sql ...
CASE WHEN column_name > 10 THEN '大于10' ELSE '小于等于10' END AS "条件判断" FROM table_name; ``` 这段SQL展示了如何在查询中使用日期时间、字符串和逻辑判断函数。 总结,Oracle函数和API是数据库操作的...
- **case when then end**: 用于条件逻辑处理。 - **sys_guid**: 生成一个全局唯一的标识符。 - **sys_context**: 返回特定命名空间中上下文的值。 - **dbms_random**: 包含用于生成随机数的函数。 - **utl_inaddr....
Oracle数据库中的`Decode()`函数和`CASE`语句都是用于条件判断和数据转换的重要工具,它们各有特点,适用场景也有所不同。以下是对这两个功能的详细比较。 首先,`Decode()`函数是一个简化的条件表达式,它允许你在...
MAX(CASE WHEN subject = '英语' THEN score ELSE NULL END) AS 英语, SUM(score) AS 总成绩 FROM CJ GROUP BY name; ``` 4. **导出固定格式数据**: 这个任务需要创建一个PL/SQL过程来生成指定格式的文本...
COUNT(CASE WHEN day_type = '节假日' THEN 1 ELSE NULL END) AS holiday_days FROM (SELECT CASE WHEN TO_CHAR(t.visit_date, 'yyyy-mm-dd') IN ('2022-01-01', '2022-05-01', '2022-10-01') THEN '节假日' ...
WHEN COUNT(CASE WHEN ZY_TYPE = '国家特色专业' THEN 1 END) > 0 THEN '国家特色' WHEN COUNT(CASE WHEN ZY_TYPE = '省示范专业' THEN 1 END) > 0 THEN '省示范' ELSE '无' END AS TYPE FROM ZY_TAB GROUP BY ...
例如,当你需要按照特定顺序(如自定义的字母顺序或数值顺序)对非数字字段进行排序时,可以借助`DECODE`函数或`CASE-WHEN`语句来实现自定义排序。下面将详细介绍这两种方法。 1. **DECODE函数** Oracle的`DECODE`...
WHEN OTHERS THEN -- 处理未捕获的异常 DBMS_OUTPUT.PUT_LINE('An error occurred: ' || SQLERRM); END; ``` ### 函数与过程 - **函数**:返回一个值的子程序。 - **过程**:不返回值但可以执行一系列操作的子...
CASE WHEN MAX(END_TIM) OVER (PARTITION BY ID ORDER BY BEG_TIM ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) >= BEG_TIM THEN 0 ELSE 1 END AS F ``` 2. `SUM()`窗口函数: 对于每个`ID`,按照`BEG_...
SELECT CASE WHEN LENGTH(o.f_nodecode) > 8 THEN SUBSTR(o.f_nodecode, 1, 8) ELSE o.f_nodecode END f_nodecode FROM orgaizeation o WHERE o.f_id = 23 ) b ON a.f_nodecode = b.f_nodecode ORDER BY b.f_...
- **SQL Server**:支持`CASE...WHEN...THEN...ELSE...END`结构,用于复杂的条件判断。 - 示例: ```sql SELECT StudentNo AS 学号, CASE WHEN Grade >= 90 AND Grade <= 100 THEN '★★★★' WHEN Grade >= ...
Oracle CASE 函数是一种在 SQL 查询中进行条件判断的表达式,它允许你在同一查询中根据不同的条件设置不同的返回值。这个函数在处理复杂的数据转换和分析时非常有用,尤其是在需要根据特定条件设置列的值时。以下是...