`

DECODE,trunc,ROUND,mod

 
阅读更多

 

to_char(doc.create_date,'yyyy/MM/dd HH24:MI') as create_date,

 

DECODE(item.category,'冷藏',pt.cold_batch_no,pt.freeze_batch_no) as batch_no,

trunc(x [,y]),其中如果没有指定y,则对x在0位小数进行截断. 

例如:TRUNC(5.75)=5.

如果y是负数,则对x在小数点左边的第|y|位处进行截断,例如:TRUNC(5.75, -1)=0      5.75 看成 0005.75000  从小数点左边第一位往左边截,等于0。

ROUND函数是对数值进行取整,

例如:ROUND(5.75)=6,表示对5.75在0位小数处进行取整,这里0位小数是没有,不是7, 7是第一位小数了。

ROUND(5.75, 1)=5.8,这里第一位小数是7   四舍五入就是 5.8  。

ROUND(5.75, -1)=10,对5.75在左边第|-1|位取整,小数点左边第一位是个位,同样看成  00005.75000, 从个位的左边开始取,并四舍五入。  个位是5 左边的十位是0, 由于5是进1的,所以是10.

 

 

mod函数是一个求余函数,其格式为:MOD(number,divisor),即是两个数值表达式作除法运算后的余数。那么:两个同号整数求余与你所知的两个正数求余完全一样(即两个负整数与两个正整数的算法一样),

即两数取余后返回两数相除的余数。

函数MOD可以借用函数 INT 来表示:MOD(n, d) = n - d*INT(n/d)                                                                   示例:

  MOD(3, 2) 等于 1  

      MOD(-3, 2) 等于1(与后面的数的符号相同)  

      MOD(3, -2) 等于-1(与后面数的符号相同)

  

 

      MOD(-3, -2) 等于 -1  

      MOD(-3, 0) 等于-3  

      MOD(3, 0) 等于3

  MOD(2,0) 等于2   

算 法

一、两个异号整数求余  1.函数值符号规律(余数的符号) mod(负,正)=正 mod(正,负)=负  结论:两个整数求余时,其值的符号为除数的符号。  2.取值规律 先将两个整数看作是正数,再作除法运算  ①能整除时,其值为0 (或没有显示)  ②不能整除时,其值=除数×(整商+1)-被除数  例:mod(36,-10)=-4 即:36除以10的整数商为3,加1后为4;其与除数之积为40;再与被除数之差为(40-36=4);取除数的符号。所以值为-4。  二、两个小数求余 取值规律:  被除数-(整商×除数)之后在第一位小数位进行四舍五入。  例:mod(9,1.2)=0.6即:9除1.2其整商为7;7与除数1.2之积为8.4;被除数9与8.4之差为0.6。故结果为0.6。

  例:mod(9,2.2)=0.2 即:9除2.2其整商为4;4与除数2.2这积为8.8;被除数9与8.8之差为0.2,故结果为0.2.                                       

 

 

综合运用:

(

DECODE

     (

      (trunc(detail.order_quantity/(select max(pu.convert_figure)from wms_package_unit pu where pu.item_id=item.id)) ),0,null,

      (trunc(detail.order_quantity/(select max(pu.convert_figure)from wms_package_unit pu where pu.item_id=item.id)) )

     ) || 

DECODE

     (

      (trunc(detail.order_quantity/(select max(pu.convert_figure)from wms_package_unit pu where pu.item_id=item.id)) ),0,null,

      (select pu.unit from wms_package_unit pu where pu.item_id=item.id and pu.convert_figure = 

      (select max(pu.convert_figure)from wms_package_unit pu where pu.item_id=item.id))

     ) || 

DECODE

     (

      (mod(detail.order_quantity,(select max(pu.convert_figure)from wms_package_unit pu where pu.item_id=item.id)) ),0,null,

      (mod(detail.order_quantity,(select max(pu.convert_figure)from wms_package_unit pu where pu.item_id=item.id)) ) 

     ) ||

DECODE

     (

      (mod(detail.order_quantity,(select max(pu.convert_figure)from wms_package_unit pu where pu.item_id=item.id)) ),0,null,

      (select pu.unit from wms_package_unit pu where pu.item_id=item.id and pu.convert_figure =  

      (select min(pu.convert_figure)from wms_package_unit pu where pu.item_id=item.id) ) 

     )

 ) as 换算数量

 

分享到:
评论

相关推荐

    Oracle常用函数和使用方法

    本文将详细介绍Oracle中一些最常用的函数及其使用方法,这些函数包括`DECODE`、`ABS`、`CEIL`、`MOD`、`ROUND`、`TRUNC`、`CONCAT`、`LOWER`和`LPAD`。 #### 二、DECODE函数:条件判断与转换 **功能描述**:`...

    oracle函数大全-数字处理函数

    TRUNC() 函数与 ROUND() 类似,但不执行四舍五入,而是简单地截断数字的小数部分。`TRUNC(123.456, 2)` 返回 `123.45`,而 `TRUNC(123.456, -2)` 返回 `120`。 3. **MOD() 函数** MOD() 函数用于计算两个数相除后...

    常用oracle 函数

    例如,`SUBSTR()`用于提取字符串的一部分,`INSTR()`用于查找子串在字符串中的位置,`DECODE()`用于条件判断等。 Oracle函数的使用极大地增强了SQL查询的灵活性和功能。了解并熟练掌握这些函数,可以提高数据库操作...

    oracle函数和分组

    2. **TRUNC函数**:截断数值到指定的小数位数,没有指定则截断到整数。 3. **POWER函数**:计算数值的幂次。 4. **ABS函数**:返回数值的绝对值。 5. **MOD函数**:返回两个数相除的余数。 6. **SIGN函数**:根据...

    Oracle常用函数.pdf

    - `DECODE(expr, value1, result1, [value2, result2,...])`:实现类似if-else的分支功能,如`DECODE(1, 1, '男', 2, '女')`为'男'。 - `USERENV(param)`:返回当前数据库会话的环境信息,如`USERENV('LANGUAGE')`...

    Oracle个人学习笔记

    SELECT COALESCE(MOD(&a, 2), MOD(&b, 2), 3) FROM dual; ``` - **条件判断**: - `DECODE()`: 类似于条件语句的功能 ```sql SELECT DECODE(1, 1, '1', 2, '2', '什么也不是') FROM dual; ``` 以上就是根据...

    oracle常用函数

    - **TRUNC(number[, ndigits])**: 截断数值到指定位置,不进行四舍五入。 - 示例:`TRUNC(45.923, 2)` 返回 `45.92` - 示例:`TRUNC(45.923, -1)` 返回 `40` - **MOD(number1, number2)**: 返回两个数值相除的...

    oracle内部函数

    5. **ROUND()**, **TRUNC()** 和 **CEIL()**:对数值进行四舍五入、截断或向上取整。例如,ROUND(3.14159, 2)将返回3.14。 6. **LENGTH()**:返回字符串的长度。例如,LENGTH('Oracle')将返回7。 Oracle的内置...

    Oracle 快速入门

    - 数学函数:`FLOOR`, `CEIL`, `ROUND`, `TRUNC`, `MOD` - 日期函数:`TRUNC`用于截断日期时间到特定粒度,如天、月等。 - 转换函数:`TO_CHAR`和`TO_NUMBER`用于数据类型转换。 ### SQL查询与条件表达式 1. **...

    ORACLE常用函数

    除了以上介绍的函数外,Oracle还支持使用`CASE`表达式和`DECODE`函数来实现条件逻辑。 - **CASE** 表达式: - 示例:`CASE WHEN score > 90 THEN '优秀' WHEN score > 70 THEN '良好' ELSE '一般' END`。 - **...

    Oracle基本函数总结

    SELECT DECODE(10, 10, '', 20, 'z', 30, 'x', '未知') FROM dual; -- 输出结果:空白 ``` 以上就是Oracle数据库中一些常用的基本函数的总结及其应用实例。通过熟练掌握这些函数,可以更高效地进行数据处理和...

    Oracle快速入门

    以上案例展示了如何使用`DECODE`函数对不同的职位应用不同的薪资调整比例。此外,还可以使用`CASE`语句实现类似的功能。 综上所述,通过这些基本的SQL操作,我们可以在Oracle数据库中执行各种数据查询、更新、管理...

    Oracle公司内部数据库培训学习资料

    1. 数学函数:如ROUND、TRUNC、MOD等,用于数值计算。 2. 字符串函数:如CONCAT、SUBSTR、UPPER/LOWER、INSTR等,用于处理字符串数据。 3. 日期时间函数:如SYSDATE、ADD_MONTHS、EXTRACT等,帮助处理日期和时间类型...

    oracle 函数文档

    1. **算术函数**:Oracle提供了诸如加法(+)、减法(-)、乘法(*)和除法(/)等基本的算术运算,同时还有ROUND、TRUNC、MOD等函数,用于对数字进行四舍五入、截断或取余数操作。 2. **字符串函数**:如CONCAT...

    oracel常用函数

    SELECT DECODE('A', 'A', 1, 'B', 2, 3) AS "Decode Value" FROM DUAL; ``` 通过上述的分类介绍,我们可以看到Oracle提供了非常丰富的内置函数来支持各种数据处理需求。这些函数不仅可以帮助我们简化查询语句,还能...

    PLSQLOracle基础教程[参照].pdf

    - **数字函数**,如ROUND、TRUNC和MOD,用于数值的四舍五入、截断和取模; - **Date函数**,如SYSDATE、ADD_MONTHS和EXTRACT,用于处理日期和时间; - **其他函数**,如NVL和DECODE,用于处理NULL值和条件判断。 第...

    Oracle110个常用函数……PDF清晰版

    - **数值处理函数**:如 `ROUND`, `TRUNC`, `MOD` 等。 - **日期处理函数**:如 `SYSDATE`, `ADD_MONTHS`, `MONTHS_BETWEEN` 等。 - **转换函数**:如 `TO_CHAR`, `TO_DATE`, `TO_NUMBER` 等。 - **聚合函数**:如 `...

    oracle函数总结

    2. `TRUNC` 函数:舍去小数,但不进位,例如 `select trunc(789.536) from dual;` 3. `MOD` 函数:返回除法的余数,例如 `select mod(10, 3) from dual;` 日期函数 日期函数用于处理日期数据,常用的日期函数有: ...

Global site tag (gtag.js) - Google Analytics