oracle/SQL中的函数

一、字符操作(SQL函数)

SQL>SELECT LOWER(ename) FROM emp;将所有员工的姓名以小写方式显示

SQL>SELECT UPPER(ename) FROM emp;将所有员工的姓名以大写方式显示

SQL>SELECT SUBSTR(ename, 1, 3) FROM emp;显示所有员工姓名的前三个字母。(从第1个字母开始,显示其后的3个字母)

SQL>SELECT ename FROM emp WHERE LENGTH(ename)=5; 显示员工中姓名长度为5个字符的员工的姓名

SQL>SELECT UPPER(SUBSTR(ename, 1, 1))||LOWER(SUBSTR(ename, 2)) FROM emp; 或  SQL>SELECT INITCAP(‘SQL course’) FROM emp; 将所有员工姓名首字母大写其他字母小写的方式显示

SQL>SELECT REPLACE(ename, 'A', 'TIGER') FROM emp;将所有员工姓名中的A替换为TIGER

SQL>SELECT CONCAT(‘SQL’,’Course’) FROM dual; 将SQL与Course连接起来

SQL>SELECT TRIM(‘S’ FROM ‘SSMITH’) FROM dual; 将S从SSMITH中去除

二、数值型函数

SQL>SELECT ABS(-5), SQRT(2), POWER(2,3), COS(3.14159), CEIL(3.4), FLOOR(3.4), MOD(1500,300), ROUND(45.986,1), ROUND(45.986, 0), TRUNC(45.986,1), TRUNC(45.986,-1) FROM dual;结果如下:

ABS(-5)

SQRT(2)

POWER(2,3)

COS(3.14159)

CEIL(3.4)

FLOOR(3.4)

5

1.41421356

8

-1

4

3

MOD(1500,300)

ROUND(45.92,1)

ROUND(45.92, 0)

TRUNC(45.96,1)

TRUNC(45.96,-1)

 

0

45.9

46

45.9

40

 

 三、日期型函数

SQL>SELECT ADD_MONTHS(’18-10月-10’,1), ADD_MONTHS(’18-10月-10’,-1), LAST_DAY(’18-10月-10’), MONTHS_BETWEEN((‘18-10月-10’, '04-9月-10'), NEXT_DAY('18-10月-10','星期一'), ROUND(TO_DATE(‘18-10月10'),'YEAR'), ROUND(TO_DATE(‘18-10月10'),'DAY'),  TRUNC(TO_DATE(‘18-10月10'),'YEAR'), TRUNC(TO_DATE(‘18-10月10'),'DAY') FROM dual;结果如下:

ADD_MONTHS(’18-10月-10’,1)

ADD_MONTHS(’18-10月-10’,-1)

LAST_DAY(’18-10月-10’)

MONTHS_BETWEEN((‘18-10月-10’, '04-9月-10')

NEXT_DAY('18-10月-10','星期一')

ROUND(TO_DATE(‘18-10月10'),'YEAR'),

18-11月-10

18-9月-10

31-10月-10

1.4516129

25-10月-10

01-1月-11

ROUND(TO_DATE(‘18-10月10'),'DAY'),

TRUNC(TO_DATE(‘18-10月10'),'YEAR')

TRUNC(TO_DATE(‘18-10月10'),'DAY')

 

 

 

17-10-10

01-1月10'

17-10月-10

 

 

 

SQL>SELECT * FROM emp WHERE SYSDATE>=ADD_MONTHS(hiredate,8); 查找已经入职8个月的职工信息

SQL>SELECT * FROM emp WHERE hiredate=LAST_DAY(hiredate)-2; 查找各月倒数第3天入职的员工

四、转换函数

SQL>SELECT ename, sal*13+nvl(comm,0) from emp; 当comm为NULL时,nvl()函数将其转化为0;

SQL>SELECT TO_CHAR(1234.5, ‘$9999.9’), TO_CHAR(SYSDATE, ‘MONTH DD, YYYY, HH24:MI:SS’), TO_DATE(’12-10月-2018’, ‘YYYY-Mon-DD’), TO_NUMBER(‘1234.5’) FROM dual;

 

TO_CHAR(1234.5, ‘$9999.9’)

TO_CHAR(SYSDATE, ‘MONTH DD, YYYY, HH24:MI:SS’)

TO_DATE(’12-10月-2018’, ‘YYYY-Mon-DD’)

TO_NUMBER(‘1234.5’)

$1234.5

10月22,2012, 00:56:07

18-10月-12

1234.5

9:显示数字,并忽略前面的0;

0:显示数字,如位数不足,则用0补齐;

.:在指定位置显示小数点

,:在指定位置显示逗号

$:在数字前加美元

L:在数字前面加本地货币符号

C:在数字前面加国际货币符号

G:在指定位置显示组分隔符

D:在指定位置显示小数点符号,或表示星期(1至7)

DD:表示月中的日期(1至31)

MM:表示两位数的月份

Y/YY/YYY/YYYY: 年份的后几位

HH/HH12/HH24: 12小时制/24小时制

MI: 分(1至60)

SS: 秒(0至59)

AM/PM:上午、下午

posted @ 2012-10-20 22:37  myLittleGarden  阅读(199)  评论(0)    收藏  举报