ORACLE_单行函数_CEIL FLOOR ROUND TRUNC
短信预约 -IT技能 免费直播动态提醒
单行函数
第一部分
第1章 数值型函数
--1 创建用户指定其使用的表空间
--1.1 查看当前表空间状态
COL tablespace_name FOR a15;
COL file_name FOR a50;
SELECT tablespace_name,file_id,file_name FROM dba_data_files;
--1.2 创建目录
mkdir -p /u01/app/oracle/oradata/PROD/disk6/
--1.3 创建表空间
CREATE TABLESPACE DBLION DATAFILE '/u01/app/oracle/oradata/PROD/disk6/tb_dblion01.dbf' SIZE 100M;
--1.4 创建用户并指定默认表空
CREATE USER dblion IDENTIFIED BY dblion DEFAULT TABLESPACE DBLION;
--1.5 授权
GRANT RESOURCE,CONNECT TO dblion;
第一部分
第1章 数值型函数
--1.函数分类
1 2 3 4 5 6
1 CEIL FLOOR ROUND TRUNC
2 ABS SIGN MOD REMAINDER BITAND
3 SIN COS TAN ASIN ACOS ATAN
4 EXP LN POWER LOG SQRT
5 NANVL WIDTH_BUCKET
99 TAN2 COSH SINH TANH --子类为99的不讲
--2.总结函数表
CREATE TABLE T_FUNCTION(
FID VARCHAR2(8), --函数ID
FNAME VARCHAR2(20), --函数名称
PARM_LIST VARCHAR2(30), --参数列表
FFUNC VARCHAR2(100), --函数功能
RET_TYPE VARCHAR2(20) --返回值类型
);
--规则:
FID 12表示函数大类34子类5是否讲解6保留78为子类中序号
--4.详细内容
--=============================================================================
函数ID :1
函数名称:CEIL
参数列表:CEIL(n)
函数功能: 返回向上取整的值
返回值类型:NUMBER
-------------------------------------------------------------------------------
INSERT INTO T_FUNCTION(FID,FNAME,PARM_LIST,FFUNC,RET_TYPE)
VALUES('01011001','CEIL','CEIL(n)','返回向上取整的值','NUMBER');
COMMIT;
SELECT * FROM T_FUNCTION;
-------------------------------------------------------------------------------
--向上取整
SELECT
CEIL(9), --9
CEIL(9.1), --10
CEIL(9.49), --10
CEIL(8.49), --9
CEIL(8.51), --9
CEIL(8.99) --9
FROM DUAL;
--类型转换
SELECT
CEIL('9'), --9
CEIL('9.1'), --10
CEIL('9.49'), --10
CEIL('8.49'), --9
CEIL('8.51'), --9
CEIL('8.99') --9
FROM DUAL;
--表达式
SELECT
CEIL(8 + 1.0), --9
CEIL(8 + 1.1), --10
CEIL(8 + 1.51), --10
CEIL(8 + 0.49), --9
CEIL(8 + 0.51), --9
CEIL(8 + 0.99) --9
FROM DUAL;
--=============================================================================
函数ID :2
函数名称:FLOOR
参数列表:FLOOR(n)
函数功能: 返回向下取整的值
返回值类型:NUMBER
-------------------------------------------------------------------------------
INSERT INTO T_FUNCTION(FID,FNAME,PARM_LIST,FFUNC,RET_TYPE)
VALUES('01011002','FLOOR','FLOOR(n)','返回向下取整的值','NUMBER');
COMMIT;
SELECT * FROM T_FUNCTION;
-------------------------------------------------------------------------------
--向下取整
SELECT
FLOOR(9), --9
FLOOR(9.1), --9
FLOOR(9.49), --9
FLOOR(8.49), --8
FLOOR(8.51), --8
FLOOR(8.99) --8
FROM DUAL;
--类型转换
SELECT
FLOOR('9'), --9
FLOOR('9.1'), --9
FLOOR('9.49'), --9
FLOOR('8.49'), --8
FLOOR('8.51'), --8
FLOOR('8.99') --8
FROM DUAL;
--表达式
SELECT
FLOOR(8 + 1.0), --9
FLOOR(8 + 1.1), --9
FLOOR(8 + 1.51), --9
FLOOR(8 + 0.49), --8
FLOOR(8 + 0.51), --8
FLOOR(8 + 0.99) --8
FROM DUAL;
记忆:
CEIL 天花板所以是向上取整
FLOOR 地板所以是向下取整
--=============================================================================
函数ID :3
函数名称:ROUND
参数列表:ROUND(n[,INTEGER])
函数功能: 返回四舍五入后的值
返回值类型:NUMBER
-------------------------------------------------------------------------------
INSERT INTO T_FUNCTION(FID,FNAME,PARM_LIST,FFUNC,RET_TYPE)
VALUES('01011003','ROUND','ROUND(n[,INTEGER])','返回四舍五入后的值','NUMBER');
COMMIT;
SELECT * FROM T_FUNCTION;
-------------------------------------------------------------------------------
SELECT
ROUND(0), -- 0
ROUND('0'), -- 0
ROUND( 10.1234), -- 10
ROUND(-10.1234), -- -10
ROUND( 9.9999), -- 10
ROUND( -9.9999) -- -10
FROM DUAL;
SELECT
ROUND(123.123456789) COL01, -- 123
ROUND(123.123456789,0) COL11, -- 123
ROUND(123.123456789,1) COL12, -- 123.1
ROUND(123.123456789,2) COL13, -- 123.12
ROUND(123.123456789,3) COL14, -- 123.123
ROUND(123.123456789,4) COL15, -- 123.1235
ROUND(123.123456789,-1) COL16, -- 120
ROUND(123.123456789,-2) COL17, -- 100
ROUND(123.123456789,-3) COL18 -- 0
FROM DUAL;
=FLOOR(n * POWER(10, integer) + 0.5) * POWER(10, -integer)
SELECT
FLOOR(123.123456789 * POWER(10, 3) + 0.5) COL1,
FLOOR(123.123456789 * POWER(10, 3) + 0.5) * POWER(10, -3) COL2,
FLOOR(123.123456789 * POWER(10, 4) + 0.5) COL3 ,
FLOOR(123.123456789 * POWER(10, 4) + 0.5) * POWER(10, -4) COL4
FROM DUAL;
--=============================================================================
函数ID :4
函数名称:TRUNC
参数列表:TRUNC(n[,INTEGER])
函数功能: 返回截断后的值
返回值类型:NUMBER
-------------------------------------------------------------------------------
INSERT INTO T_FUNCTION(FID,FNAME,PARM_LIST,FFUNC,RET_TYPE)
VALUES('01011004','TRUNC','TRUNC(n[,INTEGER])','返回截断后的值','NUMBER');
COMMIT;
SELECT * FROM T_FUNCTION;
-------------------------------------------------------------------------------
SELECT
TRUNC(0), -- 0
TRUNC('0'), -- 0
TRUNC( 10.1234), -- 10
TRUNC(-10.1234), -- -10
TRUNC( 9.9999), -- 9
TRUNC( -9.9999) -- -9
FROM DUAL;
SELECT
TRUNC(123.123456789) COL01, -- 123
TRUNC(123.123456789,0) COL11, -- 123
TRUNC(123.123456789,1) COL12, -- 123.1
TRUNC(123.123456789,2) COL13, -- 123.12
TRUNC(123.123456789,3) COL14, -- 123.123
TRUNC(123.123456789,4) COL15, -- 123.124 --4后面被截断
TRUNC(123.123456789,-1) COL16, -- 120
TRUNC(123.123456789,-2) COL17, -- 100
TRUNC(123.123456789,-3) COL18
FROM DUAL;
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341