2011年11月16日 星期三

ORACLE 基本指令

1. 日期類
  • 將日期格式化→'31-12月-11''2011/12/31'
  • SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
  • 系統日期
  • SELECT SYSDATE FROM DUAL;
  • 日期加上I個月後的日期
  • SELECT ADD_MONTH(SYSDATE,6) FROM DUAL;
  • 回傳下一個星期幾,回傳下一個星期三
  • SELECT NEXT_DAY(SYSDATE,'星期三') FROM DUAL;
  • 回傳所在月份的最後一天
  • SELECT LAST_DAT(SYSDATE) FROM DUAL;
  • 回傳之間差了幾個月
  • SELECT MONTHS_BETWEEN('11-11月-11',SYSDATE) FROM DUAL;
  • 回傳指定日期的參數資料
  • SELECT EXTRACT(YEAR FROM SYSDATE) FROM DUAL;
  • SELECT EXTRACT(MONTH FROM SYSDATE) FROM DUAL;
  • SELECT EXTRACT(DAY FROM SYSDATE) FROM DUAL;
  • SELECT EXTRACT(HOUR FROM TIMESTAMP '2011-11-11 11:11:11') FROM DUAL;
  • SELECT EXTRACT(MINUTE FROM TIMESTAMP '2011-11-11 11:11:11') FROM DUAL;
2. 字串類

  • 大寫
  • SELECT UPPER('hello') FROM DUAL;
  • 小寫
  • SELECT LOWER('HELLO') FROM DUAL;
  • 字串相加
  • SELECT LOWER('HELLO','WORLD') FROM DUAL;
  • 取字串,從第三個字元開始取5位,回傳LLO W
  • SELECT SUBSTR('HELLO WORLD',3,5) FROM DUAL;
  • 取的字串位置,回傳6
  • SELECT INSTR('HELLO WORLD','WORLD') FROM DUAL;
  • 填補字元數 LPAD、RPAD,回傳  $$$$$HELLO
  • SELECT LPAD('HELLO',10,'$') FROM DUAL;
3. 數值類
  • 四捨五入,回傳123.46
  • SELECT ROUND(123.456,2) FROM DUAL;
  • 無條件捨去,回傳123.45
  • SELECT TRUNC(123.456,2) FROM DUAL;
  • 取大於等於N的,回傳124
  • SELECT CEIL(123.567) FROM DUAL;
  • 取小於等於N的,回傳123
  • SELECT FLOOR(123.567) FROM DUAL;
4. 轉換函數
  • 日期到字元
  • SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
  • 字元到日期
  • SELECT TO_DATE('2011-11-11','YYYY-MM-DD') FROM DUAL;
  • 數字到字元,回傳1,234.567
  • SELECT TO_CHAR(1234.567,'99,999.999') FROM DUAL;
5. 比較函數
  • 傳回字元中最大者,回傳C
  • SELECT GREATEST('A','B','C') FROM DUAL;
  • 傳回字元中最小者,回傳A
  • SELECT LEAST('A','B','C') FROM DUAL;
  • CASE WHEN,如果職稱是MANAGER,就拿1000,如果是EMPLOYEE,就拿500,其他0
  • SELECT DECODE(JOB, 'MANAGER' , 1000, 'EMPLOYEE' , 500 , 0) FROM DUAL;

沒有留言:

張貼留言