#保留两位小数:
round((ny.AMOUNT-oy.AMOUNT)/ny.AMOUNT,2)
#之所以做IS NULL 判断是因为ORACLE算术运算符,有一个为NULL,则为NULL
oy.AMOUNT IS NULL
#取TXN_DATE前6个字符
"SUBSTR"(f.TXN_DATE,1,6)
######################
实例:
SELECT(
CASE
WHEN oy.AMOUNT IS NULL THEN
(ny.AMOUNT-0)/ny.AMOUNT
WHEN ny.AMOUNT IS NULL THEN
(0-oy.AMOUNT)/oy.AMOUNT
ELSE
round((ny.AMOUNT-oy.AMOUNT)/ny.AMOUNT,2)
END) AS samepercent,ny.BLEVEL FROM
(SELECT "SUM"(f.AMOUNT) AS AMOUNT,f.BLEVEL FROM FT_INCOME_REPORT_LOG f
WHERE "SUBSTR"(f.TXN_DATE,1,6) >= '201601' AND "SUBSTR"(f.TXN_DATE,1,6) <= '201605' GROUP BY f.BLEVEL) ny
LEFT JOIN
(SELECT "SUM"(f.AMOUNT) AS AMOUNT,f.BLEVEL FROM FT_INCOME_REPORT_LOG f
WHERE "SUBSTR"(f.TXN_DATE,1,6) >= '201501' AND "SUBSTR"(f.TXN_DATE,1,6) <= '201505' GROUP BY f.BLEVEL) oy
ON ny.BLEVEL=oy.BLEVEL
错误代码解析:
[Err] ORA-00923
[Err] ORA-00923:
未找到要求的 FROM 关键字
[Err] ORA-00904:
[Err] ORA-00904: "SI"."S_ITEM":
标识符无效
[Err] ORA-0090
[Err] ORA-00907:
缺失右括号
[Err] ORA-00933
##看看是不是SQL语句中缺少where,on,and,or,order,group,by等
[Err] ORA-00933:
SQL 命令未正确结束
[Err] ORA-00972:
标识符过长,看看是不是,字符串少了引号"
oracle
无效的列索引,?占位符与所提供的变量数,不相同
ORA-00918:
未明确定义列 ,看看有没有列名存在相同的
分享到:
相关推荐
在 Oracle 数据库中,`CASE WHEN` 表达式提供了一种在 SQL 查询中实现条件判断的方法,这使得开发人员能够在不使用 PL/SQL 的情况下编写更为灵活和复杂的查询语句。`CASE WHEN` 与 `DECODE()` 函数相似,但因其符合 ...
1. CASE WHEN 表达式有两种形式 代码如下:–简单Case函数 CASE sex ... CASE WHEN 在语句中不同位置的用法2.1 SELECT CASE WHEN 用法 代码如下:SELECT grade, COUNT (CASE WHEN sex = 1 THEN 1 /*sex 1为男生,2位
【Oracle使用CASE判断解决多值问题】 在Oracle数据库中,面对多值判断的场景,我们经常需要对数据进行复杂的逻辑处理。在这个问题中,我们有一个专业表ZY_TAB,包含专业名称(ZY_NAME),专业代码(ZY_CODE),专业类型...
### Oracle常用函数与使用方法详解 #### 一、Oracle SQL函数概述 在Oracle数据库中,SQL函数被广泛用于处理各种数据类型,包括数值、字符、日期等,它们能够帮助我们更高效地进行数据检索和分析。本文将详细介绍...
游标 for 循环是一种简化的使用游标的方法,可以简化代码和提高可读性。例如,根据用户输入的职称,逐一显示教师信息表中的每行信息,并给每行记录设定编号: ```sql Declare V_rank varchar2(20); Cursor teacher...
本手册将深入探讨Oracle SQL的用法,包括各种函数的使用、数据类型的转换以及查询语句的语法。 首先,Oracle函数是SQL查询中的重要组成部分。单行函数主要作用于一行数据的一个字段,例如字符函数,它们可以对字符...
Oracle数据库中的`Decode()`函数和`CASE`语句都是用于条件判断和数据转换的重要工具,它们各有特点,适用场景也有所不同。以下是对这两个功能的详细比较。 首先,`Decode()`函数是一个简化的条件表达式,它允许你在...
Oracle提供了多种方法来处理空值,包括使用NVL、NVL2、COALESCE函数,以及CASE和DECODE语句。下面将详细介绍这些方法及其应用场景。 ### 1. NVL函数 NVL(expr1, expr2)函数用于替换空值。当expr1为NULL时,NVL函数...
本文主要介绍了使用Oracle的SQL函数来实现工作日和节假日的判断和统计,并提供了具体的实现方法和代码。 一、工作日和节假日的判断方法 在Oracle中,我们可以使用TO_CHAR函数来判断工作日和节假日。TO_CHAR函数...
- 使用`SELECT * FROM TableName WHERE ROWNUM ;` - 这里`ROWNUM`是一个伪列,用于标识查询结果中的行序号。 - **DB2**: - 使用`SELECT * FROM TableName FETCH FIRST N ROWS ONLY;` - `FETCH FIRST N ROWS ...
### Oracle关键字用法整合 #### 1. CONCAT **功能说明**:`CONCAT`用于连接两个或多个字符串。在Oracle中,可以使用`||`作为替代方式。 **示例**: ```sql SELECT CONCAT('%','') FROM dual; ``` 在示例中,由于`...
本文将详细介绍这两个函数的用法,并结合`CASE WHEN`语句来解决特定的问题。 `SUBSTR`函数用于从一个字符串中提取指定长度的子字符串。它有两种形式: 1. `SUBSTR(string, start_position, length)` 这种形式从`...
- Oracle 使用 `SELECT * FROM TableName WHERE ROWNUM ;` - DB2 使用 `SELECT * FROM TableName FETCH FIRST N ROWS ONLY;` 2. 获取系统日期: - Oracle:`SELECT SYSDATE FROM DUAL;` - DB2:`SELECT CURRENT...
在Oracle中,可先使用`CASE WHEN`或`DECODE`函数进行分层,再结合`SAMPLE`函数来实现。 ### 二、Oracle中的抽样技巧 Oracle提供了内置的`SAMPLE`函数,可以直接用于实现抽样。例如: ```sql SELECT * FROM (SELECT...
Oracle 中可以使用 CASE 语句来判断当前时间是上午、下午还是晚上。 例如,使用 CASE 语句可以判断当前时间:SELECT CASE WHEN to_number(to_char(SYSDATE,'hh24')) BETWEEN 6 AND 11 THEN '上午' WHEN to_number...
在Oracle中,SUM函数可以结合CASE WHEN语句,使得条件求和变得更为灵活。 1. SUM与CASE WHEN结合使用 在描述的示例1中,我们看到了一个查询,它根据`AREA_CODE`字段对数据进行分组,并计算出`IPTV_NBR`和`ACC_NBR`...
以上就是Oracle数据库中一些常见的异常及对应的处理方法。在编写PL/SQL代码时,充分理解并合理处理这些异常是确保程序稳定运行的关键。通过预定义异常处理和良好的编程实践,可以提高代码的健壮性和可靠性。