单行函数

功能简单:

例如:现在希望字母变为大写。这样的功能就能使用单行函数完成。

核心的几个。

字符串函数,数字函数,日期函数,转换函数,通用函数。

要求几下单行函数的名称,返回值类型,接受参数的类型。

字符串函数

转大写

字符串 UPPER (字符串 | 数据列)

转小写

字符串 LOWER (字符串 | 数据列)

示例:

SELECT UPPER('Hello') , LOWER('Hello') FROM dual ;    虚拟表中显示’Hello'

SELECT LOWER(ename) FROM EMP ;            按照小写显示雇员名字

利用这两个特性可以将用户信息变为统一的大写或者小写。

范例:

例如输入‘Smith’要输出‘SMITH’ 的信息。

Oracle 有一种替代操作,

例如:

SELECT * FROM &tablename ;  

SELECT * FROM EMP WHERE ename= UPPER('&name') ;

首字母大写,其余字母小写

字符串 INITCAP(字符串 | 列)

计算字符串的长度

LENGTH (字符串 |列)

替换指定字符串的内容,

字符串REPLACE(字符串 | 列 ,要替换的内容 ,替换的内容)

截取操作.

SUBSTR (字符串 | 列 ,截取开始索引)

 

SUBSTR  (字符串 | 列 ,截取开始索引,结束索引)

去掉左右空格

TRIM (字符串 | 列)

转变首字母大写
SELECT INITCAP(ENAME) FROM EMP ;
计算长度
SELECT LENGTH('Hello') FROM EMP ;
SELECT ename , LENGTH(ename) FROM EMP ;
SELECT ENAME FROM emp WHERE LENGTH(ENAME)=5;
替换操作
SELECT REPLACE('hello world' , 'l','_') FROM EMP ;
SELECT ename,REPLACE(ENAME,'A','_')FROM EMP ;
截取操作
SELECT SUBSTR('Hello world',7) FROM DUAL ;
SELECT SUBSTR('Hello world',7,9) FROM DUAL ;
截取开始的时候是从1开始的,不是0
SELECT ENAME,SUBSTR(ename,1,3) FROM emp ;    截取名字前三位
SELECT ENAME,SUBSTR(ename,LENGTH(ENAME)-2,LENGTH(ENAME))FROM EMP ; 截取名字后三位
去掉左右空格的操作
SELECT TRIM('    HELLLO WORLD  ') FROM DUAL ;

 

 

数字函数:

 

四舍五入

数字 ROUND(数字 |列 )

 

数字 ROUND(数字 |列 ,位数)

 

日期函数

 

伪列:SYSDATE         SYSTIMESTAMP

日期+数字 = 日期   日期-数字= 日期   日期-日期 = 数字  没有日期+日期

 

转换函数

1.转字符串数据  : 字符串 TO_CHAR(数字|日期|列,转换)

  日期:年(yyyy)月(mm)日(dd)

  数字:一位数字(9) ,货币数字(L)

  范例将日期格式化为字符串:

 

SELECT SYSDATE FROM DUAL ;
SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd') FROM DUAL ;
SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd hh:mi:ss') FROM DUAL ;
SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss') FROM DUAL ;  //24小时计时

 

用户也可使用TO_CHAR拆分年月日

SELECT  TO_CHAR(SYSDATE,'yyyy')year,
    TO_CHAR(SYSDATE,'MM')months,
    TO_CHAR(SYSDATE,'DD')day
FROM DUAL 

查询出所有在二月份雇佣的雇员:

SELECT * FROM EMP WHERE TO_CHAR(hiredate,'mm')='02' ;

格式化数字显示

SELECT TO_CHAR(5242134565313,'999,999,999,999,999,999,999') FROM DUAL ;
SELECT TO_CHAR(5242134565313,'L999,999,999,999,999,999,999') FROM DUAL ;

 

2.将字符串变为日期 TO_DATE

3.将字符串变为数字 TO_NUMBER()

 

通用函数

特色函数

主要是Oracle特色函数有两个 NVL() ,DECODE()

1.处理空数据

  数字 NVL(列 | 数据 | ,默认值)

  范例要求计算每一位雇员的年薪 :

  SELECT ename,sal,comm,(sal+comm)*12 FROM emp ;

  发现有一部分人没有年薪的。

  因为有人没有comm,comm为null现在就要使用NVL函数

  

SELECT ename,sal,comm,(sal+NVL(comm,0))*12 FROM emp ;

2.多数据判断:数据DECODE(字段|数据,判断数据1,显示数据1,。。。。【默认数据】)

  范例:

  将所有雇员的职位数据换位中文:

  

SELECT ename,job,
    DECODE(job,'CLERK','办事员','未处理') 
FROM     emp ;

  上了这个船就要把所有的写出来,不然就默认未处理。

 

posted @ 2016-02-01 19:35  式微胡不归  阅读(242)  评论(0编辑  收藏  举报