Oracle 单行函数

2018-04-20  本文已影响0人  chrisdd

常见字符函数

select lower('HELLO'),upper('hello'),initcap('HeLlo') from dual;--hello HELLO   Hello
select trim('H' from 'HelloHH'),ltrim('HelloHH','H'),rtrim('HelloHH','H') from dual;--ello  elloHH  Hello
select lpad(1000,7,'*'),rpad(1000,7,'*') from dual;--***1000    1000***
select instr('hello tom','tom')from dual;--7
select substr('hello',3,2)from dual;--ll
select concat('my','tom'),length('tom') from dual;--mytom   3
select replace('hello','h','k') from dual;--kello

常见数值函数

四舍五入:

select round(123.456,2),round(123.456,-2),round(123.456,0),round(123.456) from dual;--123.46    100 123 123

去尾:

select trunc(123.456,2),trunc(123.456,-2),trunc(123.456,0),trunc(123.456) from dual;--123.45    100 123 123

求模(取余):

select mod(12,7) from dual;--5

常见日期函数

sysdate 获取系统当前时间(数据库)
months_between 两个日期间的相差月数
add_months 获取几个月后的日期
last_day 本月最后一天
extract 日期中某部分值

select sysdate from dual;--2016-11-15 11.22.50
select sysdate+2 from dual;--2016-11-17 11.22.52
select sysdate+12/24 from dual;--2016-11-15 23.24.22
select add_months(sysdate,3) from dual;--2017-02-15 11.25.33
select user_name ,months_between(sysdate,create_date) months1,trunc(months_between(sysdate,create_date))months2 from um_user where user_name='王国勇';--王国勇    3.44782818100358422939068100358422939068    3
select last_day(sysdate) from dual;--2016-11-30 11.31.51
select extract(year from sysdate) from dual;--2016
select extract(month from sysdate) from dual;--11
select extract(day from sysdate) from dual;--15

常见转换函数

年:year,yyyy,yy;月:month,mon,mm;日:DAY(monday),DY(mon),D(1)
select to_char(sysdate,'YYYY-MM-DD') from dual;--2016-11-15
L:表示本地货币符号;$:直接显示;9:表示数值;0:直接显示,强制占位
select to_char(123.4,'L9,999,999.00') from dual;-- ¥123.40
select to_date('2016-11-11','YYYY-MM-DD') from dual;--2016-11-11 00.00.00

MAX,MIN:用在字符、数值、日期类;sum,avg:用在数值类型;count:统计表达式值不为空的行数

select max(create_date),min(create_date),max(group_id),min(group_id) from um_user;--2016-11-10 16.39.01 2004-10-26 09.34.34 902 60
select count(*) from dual;--1

聚合函数

在select子句中出现的非分组列,必须出现在group by 子句中。

select *|{[distinct]列|表达式[[as]列别名],...}
from 表名
[where 条件]
[group by 列,...]--根据指定的列进行分组统计
[having分组条件]--限定显示分组后的数据
[order by 列|列别名|表达式|序号[asc|desc],...];

desc um_user;可以查询表的相关信息

上一篇下一篇

猜你喜欢

热点阅读