oracle 数据库函数_2018/8/3

  • 排序查询
  • 字符函数
  • 数字函数
  • 日期函数
  • 转换函数
  • 通用函数

排序查询

升序 asc      默认为升序
降序 desc 

格式:select1,列2,..,列n from [表名] where [筛选条件] order by [列名] desc|asc

例:查询员工表的员工信息按工资降序显示

select * from emp order by sal desc;    

多列排序
例:查询员工表的员工信息 按照职位的字母顺序升序,并且按照工资降序

select * from emp order by job,sal desc;

字符函数

1.Upper:将字符串转换为大写

例:将abcd转换为大写字母
select upper(abcd) from dual;

2.Lower:转换为小写

例:将abcd转换为小写字母
select lower(abcd) from dual;

3.Initcap:首字母大写

例:查询员工表姓名将首字母大写
select initcap(ename) from emp;

4.Length:字符串长度

例:查询员工表的员工姓名的长度
select length(ename) from emp;

5.Replace:替换

例:查询员工表的姓名将姓名中有"A"的替换为"B"
select replace(ename,'A','B') from emp;

6.Substr:字符串截取

substr中一共有三个参数,第一个为要截取字段的列名,第二个为从第几个字符开始截取,正数
从开始截取,负数从末尾开始截取
第三个为截取几位,可忽略,若忽略的话会一直截取到末尾。

例:查询员工表姓名要求只显示前三位
select substr(ename,0,3) from emp;

注意:oracle中substr函数截取的时候下标从0或者从1开始,结果一样

数字函数

1.Round:四舍五入

例:保留2位小数,四舍五入
select round(sal/3,2) from emp;

2.Trunc:截取
例:select trunc(sal/3,2) from emp;

3.Mod:求余,取模
例:select mod(10,3) from dual;

4.Abs:绝对值
例:select abs(-10.23) from dual;

5.Ceil:向上取值
例:select ceil(10.23) from dual;

6.Floor:向下取值
例:select floor(10.23) from dual;

7.Sign:数字的正负(-1,0,1)
例:select sign(9) from dual;
例:select sign(-10) from dual;
例:select sign(0) from dual;

8.Sqrt:平方根
例:select sqrt(9) from dual;

日期函数

注意事项:
日期+数字=日期:若干天之后的日期
日期-数字=日期:若干天之前的日期
日期-日期=数字:两个日期之间的天数

1.系统当前时间 sysdate
例:查询系统当前时间
select sysdate from dual;

2.Last_day(日期):当月最后一天
select last_day(sysdate) from dual;

3.Next_day(日期,星期几) 以给定日期为为准,下一个指定星期几的日期
select next_day(sysdate,'星期六') from dual;

4.Add_months(日期,数字) 若干个月之后的日期
例:以当前日期为准,往后一个月的日期
select add_months(sysdate,1) from dual;

5.Months_between(日期1,日期2):两个日期之间的月数
例:显示一年有多少个月
select months_between(to_date('2018-01-01','yyyy-mm-dd'),to_date('2018-12-31','yyyy-mm-dd')) from dual;

转换函数

1.To_date(字符串,格式字符串):将字符串变成date类型的数据
To_date(‘1991-9-9’,’yyyy-mm-dd’)

例:插入生日日期
insert into table value('张三',to_date('1999-1-12','yyyy-mm-dd'));

2.To_char(字符串|列,格式字符串):将日期或数字变成字符串类型显示

例子:求在1981年被雇佣的人员信息
select * from emp where to_char(hiredate,'yyyy')=1981;

通用函数

Nvl:处理空值
若某一列为空值时 需要进行运算操作 可以使用nvl(列名,null,0)处理 将空值变为0

Decode:多数值判断  if-else
把emp表中职位的英文显示成对应的中文
 select empno,ename,job,
    decode(job,'CLERK','办事员','SALESMAN','销售员','ANALYST','分析员')
    from emp;

猜你喜欢

转载自blog.csdn.net/weixin_42835567/article/details/81394051