Oracle入门学习----函数的使用

一、字符函数

1、lower(char)             将字符串转化为小写的格式

2、upper(char)            将字符串转化为大写的格式

3、length(char)            放回字符串的长度

4、substr(char,m,n)    取字符串的子串

5、replace(char1,search_string,replace_string)  

6、instr(char1,char2,[ n [,m] ] )  取子串在字符串的位置

二、数学函数

1、round( n , [ m ] ) 用于执行四舍五入,如果省掉m,则四舍五入到整数,如果m是正数,则四舍五入到小数点的m位后。如果m是负数,则四舍五入到小数点的m位前。

2、trunc( n , [ m ] ) 用于截取数字,如果省去m,就截取小数部分,如果m是正数就截取小数点的m位后,如果m是负数,就截取到小数点的前m位。

3、floor( n ) 返回小于或是等于n的最大整数

4、ceil( n ) 返回大于或是等于n的最小整数

5、mod(m, n) 返回m除n的余数

注:在做oracle测试时可以使用dual表。

例如:

select mod(10,2) from dual;

三、日期函数

默认的日期格式:dd-mon-yy 即 12-7月-78

1、sysdate  返回系统时间

2、add_months( d , n )    d表示起始日期,n为添加月份数,返回添加后的日期

3、last_day( d )  返回指定日期所在月份的最后一天


四、转化函数

1、to_char( ) 
yy : 两位数字的年份
yyyy : 四位数字的年份
mm : 两位数字的月份
dd : 两位数字的天
hh24 : 24小时制
hh12 : 12小时制
mi 、ss 分钟、秒
9 : 显示数字,并忽略前面的0
0:显示数字,如位数不足,则用0补齐
. : 在指定位置显示小数点
, : 在指定位置显示逗号
$ : 在数字前加美元
L : 在数字前加本地货币符号
C : 在数字前加国际货币符号
G : 在指定位置显示组分隔符、
D : 在指定位置显示小数点符号.

2、to_date( ) 将字符串转化为date类型的数据

五、系统函数

1、sys_context
terminal : 当前会话客户所对应的终端的标识符
language : 语言
db_name : 当前数据库名称
nls_date_format : 当前会话客户所对应的日期格式
session_user : 当前会话客户所对应的数据库用户名
current_schema : 当前会话客户所对应的默认方案名
host : 返回数据库所在主机的名称
例如: 
select sys_context('USERENV','db_name') from dual;
注意:USERENV是固定的,不能改,db_name可以换成其它

六、其它辅助函数

1、DECODE( exp , s1 , r1 , s2 , r2 .. s , r [ , def ] ) 可以把它理解成一个增强型的if else,只不过它并不通过多行语句,而是在一个函数内实现if else的功能。
exp做为初始参数。s做为对比值,相同则返回r,如果s有多个,则持续遍历所有s,直到某个条件为真为止,否则返回默认值def(如果指定了的话),如果没有默认值,并且前面的对比也都没有为真,则返回空。
毫无疑问,decode是个非常重要的函数,在实现行转列等功能时都会用到,需要牢记和熟练使用。

例如:select decode('a2','a1','true1','a2','true2','default') from dual;

2、GREATEST(n1,n2,...n) 返回序列中的最大值
例如:SELECT GREATEST(15,5,75,8) "Greatest" FROM DUAL;

3、LEAST(n1,n2....n) 返回序列中的最小值
例如:SELECT LEAST(15,5,75,8) LEAST FROM DUAL;

4、NULLIF(c1,c2)
Nullif也是个很有意思的函数。逻辑等价于:CASE WHEN c1 = c2 THEN NULL ELSE c1 END
例如:SELECT NULLIF('a','b'),NULLIF('a','a') FROM DUAL;

5、NVL(c1,c2) 逻辑等价于IF c1 is null THEN c2 ELSE c1 END。c1,c2可以是任何类型。如果两者类型不同,则oracle会自动将c2转换为c1的类型。
例如:SELECT NVL(null, '12') FROM DUAL;

6、NVL2(c1,c2,c3) 大家可能都用到nvl,但你用过nvl2吗?如果c1非空则返回c2,如果c1为空则返回c3
例如:select nvl2('a', 'b', 'c') isNull,nvl2(null, 'b', 'c') isNotNull from dual;

7、SYS_CONNECT_BY_PATH(col,c) 该函数只能应用于树状查询。返回通过c1连接的从根到节点的路径。该函数必须与connect by 子句共同使用。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值