A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 姚远 初级黑马   /  2012-5-13 06:19  /  2732 人查看  /  2 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

ORACLE 函数笔记
SELECT * FROM EMP WHERE ename = UPPER('yrk');
SELECT * FROM EMP WHERE ename = LOWER('GQH');
--第一个字母变大写
SELECT INITCAP(ENAME) FROM EMP;
--拼接字符串
SELECT CONCAT(EMPNO,ENAME) FROM EMP;
SELECT EMPNO || ENAME FROM EMP;
--截取字符串
SELECT SUBSTR(ENAME,2) FROM EMP;
SELECT SUBSTR(ENAME,-2,1) FROM EMP;
--字符串长度
SELECT LENGTH(ENAME) FROM EMP;
--替换字符串
SELECT REPLACE(ENAME,'Y','S') FROM EMP;
--查找字符串所在位置
--INSTR(源字符串,查找字符串,方向及起始位置,第几个)
SELECT INSTR('HELLO WORLD','O') FROM EMP;
SELECT INSTR('HELLO WORLD','O',-1,2) FROM EMP;
--填充字符到字符串里,方向由左向右,
--lpad(源字符串,字符串要达到长度,填充符号)
SELECT LPAD('SHENHUA',15,'*') FROM EMP;
--填充字符到字符串里,方向由右向左,
--rpad(字符串,字符串要达到的长度,填充符号)
SELECT RPAD('SSSS',15,'-') FROM EMP;
--过溜掉首尾空格
SELECT TRIM(' YANG   ') FROM EMP;

--四舍五入函数
SELECT ROUND(462,-2) FROM EMP;
SELECT ROUND(412.12333,2) FROM EMP;
--取模函数
SELECT MOD(4,3) FROM EMP;
--截取函数
SELECT TRUNC(555.55,-1) FROM EMP;

--
SELECT MONTHS_BETWEEN(SYSDATE,SYSDATE) FROM EMP;
--添加月份函数
SELECT ADD_MONTHS(SYSDATE,10) FROM EMP;
--
SELECT NEXT_DAY(SYSDATE,'星期一') FROM EMP;
--制定格式
SELECT LAST_DAY(SYSDATE) FROM EMP;
SELECT TO_CHAR(SYSDATE,'YYYY') FROM EMP;
SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM EMP;
SELECT TO_CHAR(SAL,'L9999,9999,99') FROM EMP;
SELECT TO_CHAR(SYSDATE,'dd') FROM EMP;
SELECT TO_NUMBER('14')+TO_NUMBER('13') FROM EMP;
SELECT TO_DATE('20090201','YYYY-MM-DD') FROM EMP;


--功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数的都为NULL ,则返回NULL。
SELECT NVL(COMM,20) FROM EMP;
--比较两个数值是否相等
SELECT NULLIF(111,111) FROM EMP;
SELECT NULLIF(111,11) FROM EMP;
--功能:如果参数表达式expr1值为NULL,则NVL2()函数返回参数表达式expr3的值;如果参数表达式expr1值不为NULL,则NVL2()函数返回参数表达式expr2的值。
SELECT NVL2(NULL,'111','YANG') FROM EMP;
SELECT NVL2('111',null,'YANG') FROM EMP;
SELECT NVL2('111','222','YANG') FROM EMP;
--
SELECT EMPNO,ENAME,SAL,COMM,COALESCE(SAL+COMM,SAL,0) AS profit FROM EMP;
--CASE 表达式
SELECT EMPNO,ENAME,SAL,
CASE DEPTNO
     WHEN 1 THEN 'in'
     WHEN 2 THEN 'qa'
     WHEN 3 THEN 'exec'
     ELSE 'null'
END
FROM EMP;
--DECODE() 函数 : 与case分支差不多
SELECT EMPNO,ENAME,SAL,
DECODE(
       DEPTNO,
             1,'IN',
             2,'OUT',
             'NULL'
      )
FROM EMP;

2 个回复

倒序浏览
值得学习!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马