FROM:http://www.233.com/oracle/zonghe/20100619/092704536.html
decode (expression, search_1, result_1)
如果 expression结果=search_1结果,则返回result_1
decode (expression, search_1, result_1, search_2, result_2)
decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n)
decode (expression, search_1, result_1, default)
如果 expression结果=search_1结果,则返回result_1,否则反回default
decode (expression, search_1, result_1, search_2, result_2, default)
decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n, default)
decode函数比较表达式和搜索字,如果匹配,返回结果;如果不匹配,返回default值;如果未定义default值,则返回空值。
如:
select (a/b*100) as percent from t
如果b为0会出现被除数为0
解决:
select decode(b,0,0,a/b*100) as percent from t
相关推荐
0不能作为被除数这是数学中的常识,当在数据库中除以0时,应该如何处理呢? 在oracle和pg中是不允许被除数为0的。 oracle: SQL> select 1/0 from dual; select 1/0 from dual * ERROR at line 1: ORA-01476: ...
- **不能在第一个分区前添加分区**: 由于分区顺序是固定的,因此不能直接在第一个分区之前添加分区。 #### 11. 映射分区 - **题目解析**:列表分区允许用户明确地控制数据如何映射到不同的分区。 - **知识点说明**...
18. **除数为零异常**:在Oracle中,除以零会导致`ZERO_DIVIDE`异常,所以B.ZERO_DIVIDE是正确答案。 19. **更新游标行**:在游标中更新当前行,需要使用`WHERE CURRENT OF`子句,所以A.WHERE CURRENT OF是正确...
运行时错误是程序在执行过程中遇到的问题,比如数据类型不匹配、权限不足、除数为零、存储溢出等。这些错误无法在编译阶段发现,只有在实际运行时才会暴露出来。Oracle提供了一套完整的异常处理机制,允许程序员通过...
Oracle 提供了预定义的内部异常,如 SELECT INTO 语句不返回行时产生的 NO_DATA_FOUND 异常、除数为零的 ZERO_DIVIDE 异常等。对于预定义异常,现将最常用的异常列举如下: * NO_DATA_FOUND(ORA-01403):SELECT ...
17. PL/SQL块中不能直接使用 `DROP` 命令,它需要通过动态SQL来执行。 18. 以零作除数会触发 `ZERO_DIVIDE` 异常。 19. 更新游标结果集中的当前行,应该使用 `WHERE CURRENT OF` 子句。 20. 处理单行查询结果的...
10. **ZERO_DIVIDE**:当执行除法运算时,除数为零时触发。这是数学计算中的基本错误,需要在代码中添加适当的异常处理。 11. **SUBSCRIPT_BEYOND_COUNT**:当元素下标超过嵌套表或VARRAY的最大允许值时触发。这...
在实际操作中,Oracle数据库管理员或开发人员需要熟悉一些常见的错误码,如ORA-01403(未找到任何数据)、ORA-01555(快照过旧)、ORA-01476(除数为零)、ORA-00911(无效字符)等。了解这些错误码的意义和处理方法...
- **描述**:当执行除法运算时,除数为零时触发。 - **示例场景**:在进行数学计算时,如果分母为零,就会引发此异常。 11. **SUBSCRIPT_BETWEEN_COUNT (ORA-06533)** - **描述**:当访问嵌套表或VARRAY集合时,...
Oracle 异常处理是 PL/SQL 编程中不可或缺的一部分,它允许开发者优雅地处理程序运行时遇到的各种错误。在 PL/SQL 中,异常处理主要分为预定义异常、非预定义异常以及自定义异常。 预定义异常是 Oracle 为常见错误...
7. 编写一个程序块,接受两个数相除并且显示结果,如果第二个数为 0,则显示消息“除数不能为 0” 知识点:变量声明、算术运算符、DBMS_OUTPUT.PUT_LINE procedures 在这个练习题中,我们将学习如何使用变量来存储...
18. **异常处理**:在PL/SQL中,除数为零会触发` divisions_by_zero`(或在Oracle中通常称为`NO_DATA_FOUND`)异常,需要通过异常处理块来捕获和处理。 这些知识点涵盖了Oracle数据库的基础概念、内存管理、数据...
- **DROP**:在PL/SQL块中,不能直接使用DROP命令,因为它是DDL(数据定义语言)的一部分,而PL/SQL块主要处理DML(数据操纵语言)操作。 - SELECT、INSERT、UPDATE命令都是DML操作,可以在PL/SQL块中直接使用。 ...
当尝试执行除法运算并且除数为零时,会触发`ZERO_DIVIDE`异常。这是基本的算术错误,需要在编程时予以避免。 #### 九、Value_error 当执行某些操作时提供的值不符合预期格式或类型时,会触发`VALUE_ERROR`异常。...
A选项中变量没有指定类型,D选项中`BOOLEAN`不能赋值为`SYSDATE`(日期类型)。 7. Oracle会为`Unique`、`Primary key`和`Foreign key`约束自动建立索引,不包括`Check`约束。 8. 创建公共同义词的命令(D)将创建...
- **异常说明**:除数为零。 - **常见原因**: - 在除法运算中分母为零。 - 数据错误或缺失。 - **解决方案**: - 在进行除法运算前验证分母是否为零。 - 检查并修正数据输入错误。 #### ORA-1722:INVALID_...
- `ZERO_DIVIDE`(ora-01476):执行除法运算时,若除数为0则抛出。 - `ACCESS_INFO_NULL`(ora-06530):访问未初始化的对象时抛出。 - `DUPLICATE_VALUE_ON_INDEX`(ora-00001):尝试插入已存在于唯一索引中的值时抛出...
避免这种错误的方法是在执行除法操作前检查除数是否为零。 5. ORA-01652:无法扩展临时表空间 当执行大型查询或操作需要大量临时空间时,可能会出现这个问题。解决方案包括增加临时表空间的大小,或者优化查询以...