標籤:length 速度 trim val cond bst 替換 儲存格 sql
查看資料庫字元集編碼
select userevn(‘language‘) from dual;
Oracle常用函數:
LOWER(‘AAAAA‘),將字元全部轉換成小寫
UPPER(‘aaaaasss‘),將字元全部轉換成大寫
INITCAP(‘AtSiChuan chengdu‘),每個字元首字母大寫
CONCAT(‘hello‘, ‘world‘),串連2個字元
SUBSTR(‘atsichuan‘, 1, 5),從第一位開始截取5位
INSTR(‘helloworld‘,‘o‘),字元第一次出現‘o’的位置
LENGTH(‘helloworld‘),字元長度
TRIM(‘ hellow world ‘),去掉字元首尾空格 trim(‘h‘ from ‘hellohworldh‘) 去掉字元首尾的h--(ellohworld),說明trim只能去掉字元首尾,中間的不能去掉
LPAD(‘sss‘, 5, ‘&‘),靠左對齊(&&sss)
RPAD(‘ccc‘, 5, ‘*‘),靠右對齊(ccc**)
REPLACE(‘ancasa‘, ‘a‘, ‘d‘)將字元中的a替換成d
轉換成金額型 to_char(salary,‘$99999999.99‘)
round四捨五入 ROUND(157.9321)---158 ROUND(157.9321,2)--157.93 ROUND(157.9321,-2)--100
trunc截斷 TRUNC(69.9923, 2)---69.99 TRUNC(69.9923)---69 TRUNC(69.9923, -1)---60
mod求餘 MOD(1600, 300)---100
日期函數
months_between(sysdate,hire_date) 2個日期之間相差的月份數
add_months 添加月份 add_months(SYSDATE,2)---- 2017/12/12 10:52:34 add_months(SYSDATE,-3)---2017/7/12 10:52:34 (sysdate是20171012)
NEXT_day(SYSDATE,‘星期四‘) 下一個星期的某一天的日期(sysdate是20171012)
last_day 指本月最後一天 last_day(sytsdate)---31 (sysdate是20171012)
round(sysdate,‘mm‘) ---20171001 round(sysdate,‘month‘)---20171001
trunc(sysdate,‘year‘)---2017/1/1 trunc(sysdate,‘mm‘)--2017/10/1 trunc(sysdate,‘dd‘) --2017/10/12 trunc(sysdate,‘hh‘)---2017/10/12 11:00:00
WM_CONCAT 該函數可將查詢結果放在一個儲存格中;
DECODE(欄位或欄位的運算,值1,值2,值3)
這個函數的啟動並執行結果是,當欄位或欄位的運算的值等於值1時,該函數傳回值2,否則傳回值3.
decode(條件,值1,傳回值1,值2,傳回值2,值3,傳回值3……值n,傳回值n,預設值)
該函數的含義如下:
IF 條件=值1 THEN
RETURN 傳回值1
IF 條件=值2 THEN
RETURN 傳回值2
IF 條件=值3 THEN
RETURN 傳回值3
....
ELSE IF 條件=值N THEN
RETURN 傳回值N
ELSE
RETURN 預設值
END IF
Merge into 的用法
Merge 的基本文法:
Merge into table[alias]
Using table or sql query[alias]
On condition
When matched then
Update set.....
When not matched then
Insert values....
truncate table 命令將快速刪除資料表中所有的記錄,但保留資料表結構。其刪除的資料是不可以恢複的。(刪除速度非常快)
delete from table 命令刪除的資料存放區在系統復原段中,即資料是可以恢複的。
drop table將刪除表的結構被依賴的約束(constrain)、觸發器(trigger)、索引(index);依賴於該表的預存程序/函數將保留,但是變為invalid狀態。
exits
between and 在兩個值之間 (包含邊界)
Oracle基本操作