Oracle 单行函数

常见字符函数

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;可以查询表的相关信息

推荐阅读更多精彩内容

  • 查询 字符串函数 UPPER LOWER INITCAP LENGTH SUBSTR(Oracle默认从1开始而不...
    嘉美伯爵阅读 605评论 0 1
  • 单行函数 SQL函数: 两种sql函数 单行函数 操作数据对象 接受参数返回一个结果 只对一行进行变换 每行返回一...
    我可能是个假开发阅读 211评论 0 6
  • 1.简介 数据存储有哪些方式?电子表格,纸质文件,数据库。 那么究竟什么是关系型数据库? 目前对数据库的分类主要是...
    乔震阅读 1,097评论 0 2
  • ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year:...
    雨一流阅读 417评论 0 2
  • 出发的日子屈指可数,我的心也愈来愈激动~ 一个人,从太原到成都,从成都再到西藏~一路乞讨,晚上露营...
    小汪儿阅读 162评论 0 0
  • 2018.1.20,人生中第二次半马。 还记得第一次半马是在16年年底12月和王辉姐一起去跑的一个半马,当时跑半马...
    张攀锋007er阅读 263评论 0 5
  • 看电视给忘记了,汗,坏习惯会有很强大的惯性!
    monsoonw阅读 35评论 0 0