oracle 函数 demo

目录

1. 字符串函数

2. 数值函数

3. 日期函数

4.聚合/计算函数

5.填充函数

6.逻辑判断返回参数

1. 字符串函数

1.1 LENGTH 函数:返回字符串的长度。 -- 结果为 12

SELECT LENGTH('Hello World!') FROM dual;

1.2 UPPER 函数:将字符串转换为大写。 -- 结果为 HELLO WORLD!

SELECT UPPER('hello world!') FROM dual;

1.3 LOWER 函数:将字符串转换为小写。 -- 结果为 hello world!

SELECT LOWER('HELLO WORLD!') FROM dual;

1.4 CONCAT 函数:将两个字符串连接起来。-- 结果为 HelloWorld!

SELECT CONCAT('Hello', 'World!') FROM dual;

1.5 SUBSTR 函数(第几个位置开始,截取多长)。-- 结果为 Wo

SELECT SUBSTR('Hello World!', 7, 2) FROM dual;

 ​​​​​1.6 SUBSTR 函数(第几个位置开始,截取多长) -- 结果:Hello

SELECT SUBSTR('Hello, world!', 1, 5) FROM DUAL;

1.7 INSTR 函数:返回一个字符串中某个子字符串的位置。-- 结果为 7

SELECT INSTR('Hello World!', 'World') FROM dual;

1.8 TRIM 函数:去掉字符串的头尾空格。-- 结果为 Hello World!

SELECT TRIM(' Hello World! ') FROM dual;

​​​​1.9 REPLACE 函数:替换字符串中的子串 -- 结果:Hello, Oracle!

SELECT REPLACE('Hello, world!', 'world', 'Oracle') FROM DUAL;

1.10 REGEXP_SUBSTR 函数: 数字表什么位置开始,一般是1(可不填),‘[^,]’是非逗号,‘[^,]+’ 是这里指以逗号切分的连接数据

SELECT REGEXP_SUBSTR('a,bc', '[^,]+',1) val  FROM dual; -- 结果:a
SELECT REGEXP_SUBSTR('a,bc', '[^,]+',2) val  FROM dual; -- 结果:bc
SELECT REGEXP_SUBSTR('a,bc', '[^,]+',3) val  FROM dual; -- 结果:bc
SELECT REGEXP_SUBSTR('a,bc', '[^,]+',4) val  FROM dual; -- 结果:c

1.11 REGEXP_SUBSTR 函数:  获取字符串中的部分数字

select regexp_replace('ABC23w-ABC','[^[:digit:]]','') from dual; -- 结果23

1.12 REGEXP_COUNT 函数: 意思是统计有多少个什么。例如这里是有多少个‘,’号

SELECT  REGEXP_COUNT('a,b,c', ',') val  FROM dual; -- 结果是: 2
SELECT  REGEXP_COUNT('a,bc', ',') val  FROM dual; -- 结果是: 1

2. 数值函数

2.1 ROUND 函数:四舍五入 -- 结果:3.14

SELECT ROUND(3.14159, 2) FROM DUAL;

2.2 TRUNC 函数:截断小数 -- 结果:3.14

SELECT TRUNC(3.14159, 2) FROM DUAL;

2.3 MOD 函数:取模运算  -- 结果:1

SELECT MOD(10, 3) FROM DUAL;

3. 日期函数

3.1 SYSDATE 函数:返回当前系统时间 -- 结果:2022-10-01 10:00:00

SELECT SYSDATE FROM DUAL;

3.2 时间格式转换

SELECT TO_CHAR(SYSDATE,'yyyy-MM-dd hh24:mi:ss')  FROM dual;
-- 结果:2022-10-01 10:00:00

SELECT TO_CHAR(SYSDATE,'hh24:mi:ss')  FROM dual;
-- 结果:10:00:00

3.3 TO_DATE 函数:将字符串转换为日期类型 -- 结果:2022-10-01 00:00:00

SELECT TO_DATE('2021-10-01', 'yyyy-mm-dd') FROM DUAL;

3.4 ADD_MONTHS 函数:增加月份  -- 结果:2021-11-01 00:00:00.000

SELECT ADD_MONTHS(TO_DATE('2021-10-01', 'yyyy-mm-dd'), 1) FROM DUAL;

3.5  NUMTODSINTERVAL函数:同一天相减,获取时分秒  HH24:Mi:SS

SELECT 
	SUBSTR(TO_CHAR(
		NUMTODSINTERVAL((to_date('2023-11-10 05:04:03','yyyy-mm-dd hh24:mi:ss')-to_date('2023-11-10 04:03:02','yyyy-mm-dd hh24:mi:ss') ) * 24 * 60,'MINUTE' )
	,'HH24:Mi:ss' ) , 12, 8) dt 
FROM dual;

-- 返回 01:01:01

4.聚合/计算函数

4.1 AVG 函数:计算平均值

SELECT AVG(salary) FROM tableName;

4.2 SUM 函数:计算总和

SELECT SUM(salary) FROM tableName;

4.3 COUNT 函数:计算记录数 

SELECT COUNT(*) FROM tableName;

5.填充函数

5.1 LPAD 函数:从左边开始填充 。 -- 结果为 01:19

select  LPAD('1:19',5,'0') from dual; 
-- 参数1:当前值 = '1:19'
-- 参数2:补充参数到几位数 = 5
-- 参数3:补充的参数 = 0

5.2 RPAD 函数:从右边开始填充 。 -- 结果为 1:190

select  RPAD('1:19',5,'0') from dual;
-- 参数1:当前值 = '1:19'
-- 参数2:补充参数到几位数 = 5
-- 参数3:补充的参数 = 0

6.逻辑判断返回参数

6.1  nvl(); 函数

SELECT nvl(value1,value2) FROM dual;
-- 如果value1 不为空则返回,反之是 value2

6.2  case when  比较 then 满足条件结果 else  不满足条件 end ;  函数  

SELECT  case when 'A' ='A' then 1 else 2  END val  FROM dual
-- 返回 1 

6.3  DECODE(表达式, 比较值1, 结果1, 比较值2, 结果2, ..., default)  函数

SELECT jiage,
       DECODE(name, 'xin',  jiage * 1.1,  'xique', jiage * 1.15,  'jingping',  jiage * 2, jiage * 1.05  ) xin_jiage,
       DECODE(name,  'xin',  '新鲜',  'xique', '稀缺',   'jingping',  '精品',  '一般'  ) name
FROM (
	SELECT  100 jiage,  'xin' name FROM dual
	UNION ALL
	SELECT  100 jiage,  'xique' name FROM dual
	UNION ALL
	SELECT  100 jiage,  'putong' name FROM dual
	UNION ALL
	SELECT  100 jiage,  'jingping' name FROM dual
);

-- 返回 
--     JIAGE   XIN_JIAGE    NAME
--     100	    110	         新鲜
--     100	    115	         稀缺
--     100	    105	         一般
--     100	    200          精品

-------

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值