1  多行函数(理解:有多个输入,但只输出1个结果)

SQL>select count(*) from emp;

COUNT(*)

-------------

14

B 字符函数Lower

select Lower('Hello') 转小写,

upper('hello') 转大写,

initcap('hello woRld')  首字母大写

from dual;

结果:

转小  转大  首字母大写

---------- -----------

helloHELLO Hello World

C字符函数 concat:

select  concat('hello','world') from dual

concat函数嵌套:

select concat (concat('hello', 'world'),'cccc')  函数嵌套 from dual;

函数嵌套

--------------

helloworldcccc

D字符函数 substr()

SUBSTR(a,b) --- 从a中第b位去字符串

substr(a, b, c) 从a中第b位, c个字符....

select substr('abcdefg1111', 2) 从第二位取子串,

substr('abcdefg1111', 2, 4) 取4个字符

from dual;

从第二位取 取4

----------------- ------

bcdefg1111  bcde

E  length字符数   lengthb字节数

注意:一个中文字符,两个字节

select length('中国abc') 字符数,

lengthb('中国abc') 字节数

from dual;

运行结果:

字符数     字节数

----------     ----------

5

F instr(),lpad(),rpad(),trim()函数

select instr('abcdefg', 'efg') 求子串位置 from dual;

求子串位置

----------------

5

selectlpad('abcd', 10, '*') lpad, rpad('abcd', 10, '*') rpad from dual;

LPAD            RPAD

----------       ----------

******abcd abcd******

--trim 去掉前后指定的字符,字符可以是空格,也可以不是空格 .

selecttrim('A' from 'ABCDEFg') from dual;

TRIM('

------

BCDEFg

2  数字函数

第二个参数

含义

2> 0

保留2位

= 0

保留到个位

-1

保留到10位

-2

保留到百位(要看十位 四舍五入)

selectround(45.926, 2) AA,

round(45.926, 1) BB,

round(45.926, 0) CC,

round(45.926) DD,

round(45.926, -1) EE,

round(45.926, -2) FF

from dual;

结果:

AA         BB         CC         DD         EE         FF

----------     ----------     ----------     ----------     ----------    ----------

45.93      45.9         46         46         50          0

3  日期函数

时间的计算.......

oracle数据库中 date包含 日期和时间

mysql                        3中数据类型 date 、time 、times.

A   selectto_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') from dual ;

TO_CHAR(SYSDATE,'YY

-------------------

2014-10-0716:34:17

B   ----昨天今天明天

select sysdate-1 昨天,

sysdate 今天,

sysdate+1 明天

from dual;

selectto_char(sysdate-1, 'yyyy-mm-dd hh24:mi:ss') 昨天,

sysdate 今天,

sysdate+1 明天

from dual;

C  ----查询员工的入职时间,按照 周 月  年 方式显示.....

select(sysdate-hiredate)/7 周,

(sysdate-hiredate)/30 月,

(sysdate-hiredate)/365 年

from emp;

select (sysdate-hiredate)/7 周,

(sysdate-hiredate)/30 月,

(sysdate-hiredate)/365

from emp;

周          月         年

----------   ----------    ----------

1763.95625 411.589791 33.8292979

1754.67053 409.423125 33.6512157

1754.38482 409.356458 33.6457363

D  查询员工的入职时间, 入职月数

selectename,

(sysdate-hiredate)/30 估计月,

MONTHS_BETWEEN(sysdate, hiredate) 函数计算月

from emp

select ename,

(sysdate-hiredate)/30 估计月,

MONTHS_BETWEEN(sysdate, hiredate) 函数计算月

from emp;

ENAME          估计月 函数计算月

----------          ----------   ----------

SMITH     411.589872 405.699876

ALLEN     409.423205 403.603102

WARD      409.356539 403.538586

JONES     408.056539 402.183747

MARTIN    402.089872 396.345037

selectnext_day(sysdate, '星期六') from dual ;

NEXT_DAY(SYSDA

--------------

11-10月-14

4 数据类型转换

select * from emp where hiredate >'01-1月 -81'

A  日期相关类型转换

比这个日期都要大的08-9月 -81 所有员工信息 按照三种方式实现

(1):隐式类型转换

select*

from emp

where hiredate > '01-1月 -81';

(2):字符串转成日期..显示类型转换

select*

from emp

where hiredate > to_date('1981-01-0102:03:04', 'yyyy-mm-dd hh24:mi:ss');

(3):日期转换成为日期类型的字符串:

select*

from emp

where to_char(hiredate, 'yyyy-mm-ddhh24:mi:ss') > '1981-01-01 02:03:04'

5  数字和字符串转换

A  --查询员工的薪水:两位小数 本地货币代码 千位符

Y1,250.00

select empno, ename, to_char(sal, 'L9,999.99')

fromemp

结果:

EMPNO ENAME     TO_CHAR(SAL,'L9,999

---------- ---------- -------------------

7369SMITH                 ¥800.00

7499ALLEN               ¥1,600.00

7521WARD                ¥1,250.00

7566JONES               ¥2,975.00

7654MARTIN              ¥1,250.00

7698BLAKE               ¥2,850.00

7782CLARK               ¥2,450.00

B  把这个字符¥1,250.00,转成数字.....

select to_number('¥1,250.00','L9,999.99') from dual ;

TO_NUMBER('¥1,250.00','L9,999.99')

-----------------------------------

1250

6 通用函数

A  给员工涨工资:总裁 1000  经理:800  其他涨500,

===============================================

分析:前后工资给列出来

if (job == 'PRESIDENT')

SAL+1000

else if (job == 'MANAGER')

SAL+800

else

SAL+500

================================================

使用的知识点:

CASE expr WHEN comparison_expr1 THEN return_expr1

[WHEN comparison_expr2 THENreturn_expr2

WHEN comparison_exprn THEN return_exprn

ELSE else_expr]

END

===============================================

转化:

CASE job when 'PRESIDENT' then sal+1000

when'MANAGER' then sal+800

elsesal + 500

END

=============================================

select ename, job, sal 涨前工资,

(

CASE job when 'PRESIDENT' then sal+1000

when'MANAGER' then sal+800

elsesal + 500

END

)

涨后工资

from emp

-----------------------------------------------------------------------------------------------------

结果:

ENAME      JOB         涨前工资   涨后工资

------------------- ---------- ----------

SMITH      CLERK            800       1300

ALLEN      SALESMAN        1600       2100

WARD       SALESMAN        1250       1750

JONES      MANAGER         2975       3775

MARTIN     SALESMAN        1250       1750

BLAKE      MANAGER         2850       3650

CLARK      MANAGER         2450       3250

SCOTT      ANALYST         3000       3500

KING       PRESIDENT       5000       6000

TURNER     SALESMAN        1500       2000

ADAMS      CLERK           1100       1600

JAMES      CLERK            950       1450

FORD       ANALYST         3000       3500

MILLER     CLERK           1300       1800

已选择14行。

B   第二种方法

===================================================

语法:

DECODE(col|expression, search1, result1

[, search2, result2,...,]

[, default])

==================================================

转化:

decode(job, 'PRESIDENT', sal+10000, 'MANAGER', sal+800, sal+500)

===================================================

select ename, job, sal 涨前工资,

(

decode(job, 'PRESIDENT', sal+10000,'MANAGER', sal+800, sal+500)

)

涨后工资

from emp;

5.单行函数,多行函数,字符函数,数字函数,日期函数,数据类型转换,数字和字符串转换,通用函数(case和decode)相关推荐

  1. mysql以下日期函数正确的_[数据库]MYSQL基础03(日期函数)

    [数据库]MYSQL基础03(日期函数) 0 2015-10-29 01:00:09 工作中对日期的处理是经常遇到的,需求可能多种多样,因此重点介绍. 1.获取当前日期select NOW()-- 结 ...

  2. 减一天 日期函数_一文掌握excel中的日期函数

    在excel中,因为日期的特殊性,大部分关于日期的运算都要用到特有的函数.对于大多数小伙伴们可能没有专门去学习过日期函数都有哪些?如何运用?可以实现什么样的功能?今天小编就为大家整理出来并详细介绍一下 ...

  3. c语言强制转换字符类型,C语言中的数据类型转换问题

    C语言中的数据类型转换问题 ● 字符型变量的值实质上是一个8位的整数值,因此取值范围一般是-128-127,char型变量也可以加修饰符unsigned,则unsigned char 型变量的取值范围 ...

  4. python数字转日期函数_【转】Python 日期和时间

    本文转自:http://www.runoob.com/python/python-date-time.html Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Pytho ...

  5. android日期函数前加0,Android手机开发:日期函数之判断某日期格式是否之前+计算某日期之前N天或之后N天的日期...

    1. 判断某日期格式是否正确 /** * 判断日期格式是否正确 */ public static boolean IsDateFormat(String dataStr) { boolean stat ...

  6. linux注册函数机制,Linux可信计算机制模块详细分析之函数实现机制(1)字符设备驱动...

    原标题:Linux可信计算机制模块详细分析之函数实现机制(1)字符设备驱动 2.3 函数实现机制 2.3.1 Linux 字符设备驱动 在linux 3.5.4中,用结构体cdev描述字符设备,cde ...

  7. oracle中chr()和ascii()函数(附常用字符与ascii对照表)

    今天修改数据库时,有较长字符串无法直接复制到某一个字段,开始以为是字符串太大了,但是长度距离VARCHAR2的上限还有很多,只有1700多个字符.检查这个字符按串和对应的错误.发现很怪异,是ORA-0 ...

  8. oracle asc 汉字,oracle中chr()和ascii()函数(附常用字符与ascii对照表)

    今天修改数据库时,有较长字符串无法直接复制到某一个字段,开始以为是字符串太大了,但是长度距离VARCHAR2的上限还有很多,只有1700多个字符.检查这个字符按串和对应的错误.发现很怪异,是ORA-0 ...

  9. mysql自定义函数重载_DBLE 2.18.10.1自定义路由函数开发指引

    工作原理 1.1 函数的加载 路由函数的加载发生在dble启动或重载时. 函数加载流程 dble读取rule.xml时,根据用户配置的标签的class属性 dble通过Java的反射机制,从$DBLE ...

  10. mysql计算1000天后的日期_Mysql中常用的日期函数

    在日常工作中写sql也会经常用到日期函数,更甚者在面试的时候会让你在写sql的过程中使用日期函数,因此做了几个常用日期函数的汇总,希望可以帮助其他人了解日期函数. 获取当前的日期(包含具体的时分秒) ...

最新文章

  1. java怎么做简易的游戏,Java小项目之《简易桌面小游戏》
  2. android 蓝牙低耗能(LBE)技术介绍
  3. 服务器上的VGA切换原理,VGA切换器使用方法和常见问题说明
  4. 简单配置局域网FTP
  5. MySQL学习笔记之五:存储引擎和查询缓存
  6. 做安全操作系统,这位技术老兵是认真的!
  7. python入门题目及答案_Python基础知识的一些练习与解答,python,部分,习题,及,答案...
  8. 疑似iQOO Neo6通过3C认证:最高支持80W快充
  9. ArcSDE数据库学习总结
  10. html 拦截境外ip,Windows服务器系统怎么屏蔽国外IP的访问
  11. 计算机二级上机考试试题,计算机二级考试c++上机考试试题.doc
  12. jupyter notebook出现kernel waitting,please wait一系列错误的解决办法
  13. 领克02linux车机怎么升级,你们想看的领克02长测报告来了,一篇读懂02的车机系统...
  14. C# 使用SQLite 错误 - 试图加载格式不正确的程序
  15. htc+m7+android系统+电源,htc one m7 4.4系统获取root权限教程(安卓4.4专用)
  16. nodejs 传递参数
  17. 文件操作eof()的问题
  18. MobileNetv2-SSDlite训练自己的数据集(一)——配置安装caffe-ssd
  19. vs进行cuda编程失败,报错“the provided PTX was compiled with an unsupported toolchain.”
  20. access是用来干什么的_Access是干嘛的,可以用来干什么?

热门文章

  1. Uipath 学习栏目基础教学:6Uipath发送邮件
  2. 判断Java 对象实例是否死亡
  3. BOOST_VMD_ASSERT_IS_SEQ宏相关的测试程序
  4. boost::units模块单位的文本表示示例
  5. boost::type_index模块实现存储有关类型的信息
  6. boost::mpl模块实现list相关的测试程序
  7. boost::mpi模块all_reduce() 集合的测试
  8. boost::geometry::densify用法的测试程序
  9. ITK:二进制图像的最小和最大曲率流
  10. DCMTK:部分元素访问API的应用程序