--数值函数 ROUND(n,[m])四舍五入,TRUNC(n,[m])截断函数,MOD()取余函数 函数用法,
select ROUND(25.328) from dual;
select ROUND(25.328,2) from dual;
select ROUND(25.328,-1) from dual;select TRUNC(25.328) from dual;
select TRUNC(25.328,2) from dual;
select TRUNC(25.328,-1) from dual;select ROUND(sal/30,2),TRUNC(sal/30,2) from emp;--求员工的日工资select MOD(9,2) from dual;
select MOD(4,2) from dual;
select * from emp where MOD(empno,2)=0;--求员工号为偶数的员工信息--日期函数SYSDATE当前日期,MONTHS_BETWEEN返回两个日期之间相差的月数,ADD_MONTHS,NEXT_DAY,LAST_DAY,ROUND(7月1日),TRUNC
select SYSDATE from dual;
select to_char(sysdate,'yyyy-MM-dd') from dual;
select months_between(sysdate,hiredate) from emp;
select round(months_between(sysdate,hiredate)/12) from emp;
select ename,add_months(hiredate,30*12) from emp;--员工入职三十年后的日期
select sysdate,next_day(sysdate,'星期二') from dual;--当前时间对应的下一个星期二的日期
select sysdate,last_day(sysdate) from dual;--当前时间对应的本月最后一天的日期
select empno,ename,hiredate from emp where hiredate = last_day(hiredate);
select *from emp where hiredate = last_day(hiredate);
select round(sysdate,'YEAR') from dual;
select trunc(sysdate,'YEAR') from dual;
SQL> select hiredate,round(hiredate,'YEAR'),round(hiredate,'MONTH') from emp where empno=7654;HIREDATE    ROUND(HIREDATE,'YEAR') ROUND(HIREDATE,'MONTH')
----------- ---------------------- -----------------------
1981-9-28   1982-1-1               1981-10-1SQL> select hiredate,trunc(hiredate,'YEAR'),trunc(hiredate,'MONTH') from emp where empno=7654;HIREDATE    TRUNC(HIREDATE,'YEAR') TRUNC(HIREDATE,'MONTH')
----------- ---------------------- -----------------------
1981-9-28   1981-1-1               1981-9-1--转换函数TO_DATE,TO_CHAR,TO_NUMBER,oracle中也有部分隐式转换类型,这些函数是显示转换
select * from emp where sal>2000;
select * from emp where sal>'2000';--结果相同
SQL> select to_char(hiredate,'YYYY"年"MM"月"DD"日"') from emp;TO_CHAR(HIREDATE,'YYYY"年"MM"?
-----------------------------
1980年12月17日
1981年02月20日
1981年02月22日
1981年04月02日
1981年09月28日
1981年05月01日
1981年06月09日
1987年04月19日
1981年11月17日
1981年09月08日
1987年05月23日
1981年12月03日
1981年12月03日
1982年01月23日
14 rows selected
SQL> select to_char(hiredate,'DD-MON-RR','NLS_DATE_LANGUAGE=AMERICAN') from emp;TO_CHAR(HIREDATE,'DD-MON-RR','
------------------------------
17-DEC-80
20-FEB-81
22-FEB-81
02-APR-81
28-SEP-81
01-MAY-81
09-JUN-81
19-APR-87
17-NOV-81
08-SEP-81
23-MAY-87
03-DEC-81
03-DEC-81
23-JAN-82
14 rows selected
select TO_CHAR(123456,'L0,000,000.00') from dual;--本地货币字符前缀,0补齐
select TO_CHAR(123456,'L9,999,999.99') from dual;--不补齐
select TO_CHAR(123456,'$9,999,999.99') from dual;--美元符号前缀
select TO_DATE(20181113,'YYYY_MM_DD') from dual;
select TO_DATE('20181113','YYYY_MM_DD') from dual;
select TO_NUMBER('$2000','$9999') from dual;
select TO_NUMBER('¥2000','L9999') from dual;
--通用函数NVL(expr1,expr2),NVL2(expr1,expr2,expr3),NULLIF(expr1,expr2),COALESCE(expr1,expr2[]),CASE,DECODE(......)
--case expr1 when X then y when x1 then y1 else y2 end
SQL> select ename,sal+NVL(comm,0) from emp;ENAME      SAL+NVL(COMM,0)
---------- ---------------
SMITH                  800
ALLEN                 1900
WARD                  1750
JONES                 2975
MARTIN                2650
BLAKE                 2850
CLARK                 2450
SCOTT                 3000
KING                  5000
TURNER                1500
ADAMS                 1100
JAMES                  950
FORD                  3000
MILLER                1300
14 rows selected
SQL> select ename,NVL2(comm,sal+comm,sal) from emp;ENAME      NVL2(COMM,SAL+COMM,SAL)
---------- -----------------------
SMITH                          800
ALLEN                         1900
WARD                          1750
JONES                         2975
MARTIN                        2650
BLAKE                         2850
CLARK                         2450
SCOTT                         3000
KING                          5000
TURNER                        1500
ADAMS                         1100
JAMES                          950
FORD                          3000
MILLER                        1300
14 rows selected
SQL> select ename,hiredate,NULLIF(hiredate,trunc(hiredate,'MONTH')) from emp;ENAME      HIREDATE    NULLIF(HIREDATE,TRUNC(HIREDATE
---------- ----------- ------------------------------
SMITH      1980-12-17  1980-12-17
ALLEN      1981-2-20   1981-2-20
WARD       1981-2-22   1981-2-22
JONES      1981-4-2    1981-4-2
MARTIN     1981-9-28   1981-9-28
BLAKE      1981-5-1
CLARK      1981-6-9    1981-6-9
SCOTT      1987-4-19   1987-4-19
KING       1981-11-17  1981-11-17
TURNER     1981-9-8    1981-9-8
ADAMS      1987-5-23   1987-5-23
JAMES      1981-12-3   1981-12-3
FORD       1981-12-3   1981-12-3
MILLER     1982-1-23   1982-1-23
14 rows selected
SQL> select ename,hiredate,sal,COALESCE(sal+comm,sal) from emp;ENAME      HIREDATE          SAL COALESCE(SAL+COMM,SAL)
---------- ----------- --------- ----------------------
SMITH      1980-12-17     800.00                    800
ALLEN      1981-2-20     1600.00                   1900
WARD       1981-2-22     1250.00                   1750
JONES      1981-4-2      2975.00                   2975
MARTIN     1981-9-28     1250.00                   2650
BLAKE      1981-5-1      2850.00                   2850
CLARK      1981-6-9      2450.00                   2450
SCOTT      1987-4-19     3000.00                   3000
KING       1981-11-17    5000.00                   5000
TURNER     1981-9-8      1500.00                   1500
ADAMS      1987-5-23     1100.00                   1100
JAMES      1981-12-3      950.00                    950
FORD       1981-12-3     3000.00                   3000
MILLER     1982-1-23     1300.00                   1300
14 rows selected
NULLIF函数NULLIF(Expression1,Expression2):给定两个参数Expression1和Expression2,如果两个参数相等,则返回NULL;否则就返回第一个参数。等价于:Case WHEN Expression1=Expression2 Then NULL ELSE Expression1。例如Select NULLIF(1,1)返回NULL,Select NULLIF(1,2)返回1。有一个实际的应用,例如防止除0操作的放生,可以使用a/NULLIF(b,0),这样就不怕b是0了,当然除0操作也可以通过别的方式判断。NULLNULL是个神奇的东西,表示空值,未知值,任何数与它加减乘除都返回NULL。ISNULL函数ISNULL(Expression1,Expression2):给定两个参数Expression1和Expression2,如果Expression1是NULL,那么返回Expression2,否则返回Expression1。等价于:Case WHEN Expression1 is NULL Then Expression2 ELSE Expression1。例如Select ISNULL(NULL,1)返回1,Select ISNULL(1,2)返回1。有一个实际的应用,可以对空值进行默认值替代,例如SELECT ISNULL(email,'没有填写email') from table1,所有email为null的,用'没有填写email'来替代。COALESCE函数COALESCE(Expression1,Expression2,Expression3,......):接受一系列的表达式或列,返回第一个非空的值。例如SELECT COALESCE(NULL,NULL,4,NULL,NULL,5),那么返回,如果里面的参数都为NULL,那么会报错。select iif(30>45,'对','错') as 结果
/*
结果
----
错
*/
select iif(null=null,'对','错') as 结果
/*
结果
----
错
*/
select iif(null is null,'对','错') as 结果
/*
结果
----
对
*/

WITH TIES

  与top()和order by 一起用,可以返回多于top的行。防止丢失想要的信息。

  例如:有个表table1

select top(3) * from table1 order by name desc:结果如下:(只有三条)

select top(3) with ties * from table1 order by name desc:结果如下:

小插件,SQL Prompt,配合Microsoft SQL Server Management Studio,使用起来非常方便,同时再加上以下几个快捷键:

  (1)ctrl+5或F5,运行代码,如果想运行特定的语句,那么只是选中该语句,然后F5或ctrl+E即可。

  (2)ctrl+L:显示执行计划。

  (3)ctrl+R:显示隐藏下面的结果窗口,增大自己书写sql的空间。

Oracle数值函数,日期函数,转换函数,通用函数(七)相关推荐

  1. mysql中的dateDayOfYear_Mysql 常用的时间日期及转换函数小结

    本文主要是总结一些常用的在实际运用中常用的一些mysql时间日期以及转换的函数 1.now()  :返回当前日期和时间 select now(); //2018-04-21 09:19:21 2.cu ...

  2. oracle取日期6,Oracle通过日期获取星座函数

    Oracle通过日期获取星座函数 create or replace function get_xingzuo(dt in date) RETURN V ARCHAR2 is xingzuo VARC ...

  3. sql日期格式转换函数_SQL转换日期

    sql日期格式转换函数 介绍 (Introduction) A common task for newbies is to learn how to do a SQL convert date and ...

  4. oracle 英文日期格式转换中文日期格式

    oracle 英文日期格式转换中文日期格式 02-Mar-2010 这个格式是美国格式,可以使用如下语句转换成中文格式 2010/3/2: SELECT TO_DATE('02 Mar 2010 06 ...

  5. oracle 聚合函数 日期,Oracle日期函数/字符函数/数字函数/转换函数/聚合函数

    Oracle日期函数: MONTHS_BETWEEN:返回两个日期之间月份的差值 MONTHS_BETWEEN('01-EP-95','11-JAN-94') ===>19.6774194 AD ...

  6. oracle的日期时间转换日期,oracle 的时间日期转换函数

    http://hi.baidu.com/cuigq_hr/blog/item/ba2bc167ed79022eaa184c34.html 1.有sysdate转换后的日期的例子总结: select t ...

  7. Oracle OCP(05):转换函数

    一.日期格式说明 类型 说明 Cc 两位数字的世纪 scc 有负号的两位数字的世纪,表示世纪前 Q 表示一位数季度 yyyy 表示4位数年 iyyy 表示4位数年,ISO格式 rrrr 表示当前年的4 ...

  8. MSSQL日期格式转换函数(使用CONVERT)

    使用 CONVERT: CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) convert(varchar(10),字段名,转换 ...

  9. 表达式和内部函数(运算符/连接符/数字函数/字符串函数/日期函数/转换函数/format函数)

    运算符 运算符 名称 优先级 例子fa ^ 幂运算 1 a^b - 取负 2 -a * , / 乘除 3 a*b,a/b \ 整除 4 a\b Mod 取余运算 5 a Mod b +, - 加减 6 ...

  10. oracle中用于返回日期和时间,oracle中日期和时间函数的使用

    日期和时间函数的使用 1,           SYSDATE:此函数用于返回系统当前日期 2,           ADD_MONTHS(日期,n):返回指定日期之前或之后的n个月所对应的日期(n为 ...

最新文章

  1. PyTorch 自动微分示例
  2. Linux文件查找工具的探索
  3. 32位程序调用64位dll_电脑系统怎样区分32位和64位
  4. 20155317 2016-2017-2 《Java程序设计》第十学习总结
  5. 软件系统设计 表驱动法
  6. 【小松教你手游开发】【unity实用技能】给每个GameObject的打开关闭加上一个渐变...
  7. Python--Json数据简单解析(11.18)
  8. Maven依赖junit @Test报错解决
  9. 天梯—输出GPLT(C语言)
  10. SVN客户端下载和Svn visual studio插件
  11. 【论文分享】ACL 2020 图神经网络在自然语言处理中的应用
  12. 超分20220218讨论
  13. 【Python实现】运输问题的表上作业法(一):利用伏格尔 (Vogel) 法寻找初始基可行解
  14. Sequencher_v4.1.4 DNA 序列分析的工业标准软件
  15. 2022年认证杯SPSSPRO杯数学建模A题(第二阶段)人员的紧急疏散求解全过程文档及程序
  16. 测绘专业计算机知识,测绘科学技术的发展趋势
  17. Samba服务和FTP服务
  18. 经纬度在线查询,地名(批量)查询经纬度,经纬度(批量)查询地名
  19. 小程序真机调试出现:request:fail 未能连接到服务器。解决办法
  20. 音乐播放(Toggle PlayerPrefs)

热门文章

  1. 什么是敏捷?——从《功勋》中首颗卫星的故事说起
  2. Vue.js实现房贷计算器
  3. 使用sobel算子提取图片轮廓
  4. Oracle的文件系统
  5. IP 地址解析与子网划分教程
  6. 基于android的移动应用开发PPT,基于Android的移动应用开发课件.ppt
  7. COMSO Livelink With MATLAB初级---连接MALTAB(已安装COMSOL Livelink For MATLAB前提下)
  8. python3安装scapy_scapy安装
  9. 吕鑫MFC学习系列六
  10. 吕鑫MFC学习系列二