Oracel单表查询

单行函数

字符串函数

  • 字符串 UPPER(列|字符串) :将传入发字符串变成大写字母形式
  • 字符串 LOWER(列|字符串) :将传入发字符串变成小写字母形式
  • 字符串 INITCAP(列|字符串) :开头首字母大写,其他都是小写
  • 数字 LENGTH(列|字符串) :取得指定字符串的长度
  • 字符串 SUBSTR(开始索引,[长度]) :获得字符串的截取,从开始索引位置开始,如果没有长度,代表截取后面的全部内容
  • 字符串 REPLACE(列|字符串,旧内容,新内容) :将指定字符串的旧内容换成新内容
例子:
1. 大写:select upper('hello') from dual;(这是虚拟表)
2. 小写:select lower(ename) from emp;
3. 首字母大写:select INITCAP(ename) from emp;
4. 取得字符串长度:select length('heloworld') from dual;
5. 字符串截取:
	从前向后截取
		select substr('helloworld',6) from dual;
		select substr('helloworld',0,5) from dual;
	oracle 中,下标从1开始,如果给的是0,也会从1开始
	 从后向前截取
		select substr('helloworld',length('hello world'-3) from dual;
		select substr('helloworld',-33) from dual;

数值函数

  • 数字 ROUND(列|数字[,小数为]):实现四舍五入可以设置保留小数位
  • 数字 TRUNC(列|数字[,小数为]):实现数据的截取,不进位
  • 数字 MOD(列|数字,列|数字):求模,计算余数
例子:
1. round函数
小数位是正数,对小数位进行四舍五入
	select round(789.56754,2) from dual;//789.57
小数位是负数,对整数位进行四舍五入
	select round(789.56754,-2) from dual;//800
2. trunc函数,不会进位
	select trunc(789.56754) from dual;//789
	select trunc(789.56754,2) from dual;//789.56
	select trunc(789.56754,-2) from dual;//700
3. mod函数
	select mod(10,3) from dual;//1

日期函数

select sysdate from dual;查找当前时间
select systimestamp from dual;查找时间戳

概念:

  • 日期 + 数字 = 日期(若干天之后的日期)
  • 日期 - 数字 = 日期(若干天之前的日期)
  • 日期 - 日期 = 日期(天数)

范例:

select sysdate-hiredate from emp;
select sysdate-7 ,sysdate+240 from dual;

函数:

  • 日期 ADD_MONTHS(列|日期,月数):在指定日期之后增加若干月之后的日期
  • 数字 MONTHS_BETWEEN(列|日期,列|日期):返回两个日期之间的所经历的月数
  • 日期 LAST_DAY(列|日期):取得指定日期所在月的最后一天
  • 日期 NEXT_DAY(列|日期,‘星期X’):查找下一个星期X是几号(如:select next_day(sysdate,‘星期二’) from dual;)

转换函数

  • 字符串 TO_CHAR(列|日期|数字,转换格式):将日期或数字 格式化为指定的字符串
  • 日期 TO_DATE(列|字符串,转换格式):按照指定的转换格式编写字符串后将其变为日期型数据
  • 数字 TO_NUMBER(列|字符串):将字符串变为数字

例子:

  1. TO_CHAR()
  • 日期:年(yyyy)、月(mm)、日(dd)
  • 时间:时(hh,hh24)、分(mi)、秒(ss)
  • 数字:任意数字(9)、本地货币符号(L)
日期:select to_char(sysdate,'yyyy-mm-dd') from dual;
时间:select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
select to_char(sysdate,'mm') from dual;
数字:select to_char(545464646,'L999,999,999,999') from dual;//结果¥545,464,646

  1. TO_DATE()
SELECT TO_DATE('1989-10-15','yyyy-mm-dd') from dual;//将字符串转换成日期,结果:15-10月-89
  1. TO_NUMBER()//不用也可以,默认转换机制可以完成
select to_number('1')+to_number('2') from dual;12 由字符串转换成数字,进行计算

通用函数

  • 数字 NVL(列|NULL,默认值):如果传入的内容时空,则使用默认数值处理
  • 数据类型 DECODE(列|字符串|数值,比较内容1,显示内容1…) :设置的内容会与每一个比较内容进行比较,如果相同,输出显示内容,如果都不同,则输出默认内容
  1. 处理null函数
select empno,ename,sal,comm, (sal+NVL(comm,0))*12 income from emp;
  1. decode(),类似于 if… else…
select ename.job,decode(job,'clerk','办事员'...'--');
发布了19 篇原创文章 · 获赞 2 · 访问量 2086

猜你喜欢

转载自blog.csdn.net/weixin_43308622/article/details/104462393
今日推荐