oracle 函數

運算符:  
    算數運算符:      + - * /  
    連接運算符       ||      e.g select 'a'||'b'||'c' from dual;  
    比較運算符       >, =, >=, <, <=, !=, like, between and, is null, in   
    任何值與null進行運算  都爲null  
      
      
ascii('a');				   根據字符  返回編碼值  
  
chr(編碼值);               根據編碼值  返回字符  
  
concat(字段名1,字段名2)    連接兩個字符串   
  
initcap(字段名)            返回字符串並將字符串的第一個字母變大寫   
      
length(字段名)             返回字段值的長度  
  
lower(字段名)              返回字符串的全部小寫  
  
upper(字段名)              返回字段值全部大寫  
  
ltrim(字段名)              清除字段值左邊的空字符串      
      
rtrim(字段名)              清除字段值右邊的空字符串      
  
substr(原字符串,從第幾個字符開始(含該字符),截取多少個);  
select substr ('abcdefg',1,3) from dual;    //abc  
  
replace(原字符串,被替換的字符串,目標字符串);  
select substr ('He love rose','He','I') from dual;  
  
trim('要去掉的字符(非字符串)' from '目標字符串');  去掉首尾所有匹配的字符,中間的不去  
select trim('s' from 'strsings') from dual;     //trsing  
select trim(leading 's' from 'strsings') from dual;     //trsings  
select trim(trailing 's' from 'strsings') from dual;        //strsing  
  
abs(數字字段名)  返回數字絕對值  
select abs(123) abs1, abs(-1234) abs2 from dual;  
  
floor(字段名)  將小數位直接幹掉,不做任何處理  
select floor(1234.923) from dual; //1234  
  
ceil(字段名)   將小數位幹掉後+1,沒有小數位就不+1  
select ceil(1234.123) from dual; //1235  
select ceil(1234) from dual;    //1234  
  
mod(被除數,除數) 取餘  
select mod(10,3) m1, mod(3,3) m2, mod(1,3) m3 from dual;  
  
power(原數字,冪)  
select power(2,3) from dual;  
  
round(字段名) 對小數四捨五入成整數  
  
trunc(字段名)  將小數位直接幹掉,不做任何處理  
select trunc(55.9) from dual;   //55  
  
avg(字段名)   
select avg(age) from tt;  
  
count(字段名/*);   獲取記錄數   若使用字段名,該字段一定不能有NULL值  
select count(*) from tt;  
  
sum(字段名)        求和  
  
min(字段名)        最小值  
  
max(字段名)        最大值  
  
to_number('1234')   字符串轉成數字  
select to_number('1234') from dual;  
  
  
  
日期常用函數  
last_day(date)返回日期date所在月的最後一天  
select last_day(sysdate) from dual ;  
add_months(date,i)返回日期date加上i個月後的日期值  
    i取正值整數    小數:截取整數後再運算     負數:減去i個月的日期值  
      
months_between(date , date_) 返回兩個日期間隔多少個月    結果可能是負數和小數(可以用ceil函數直接進位)  
  
next_day(date , 周幾) 返回date日期數據的下一個周幾的日期 ,例如 4  即下一個週四的日期 
 
    Sunday (週日)Monday(週一)Tuesday(週二)Wednesday(週三)Thursday(週四)Friday (週五)Saturday(週六)  
    January一月; February二月; March三月; April 四月; May 五月;June 六月;July七月;August 八月;September 九月;October 十月;November 十一月;December 十二月  
  
  
  
比較函數: 參數類型必須一致 第二個參數類型會被轉向第一參數類型  不能轉換就報錯  
least(1,3,55,100,2,24)  //獲取最小值  
greatest(1,88,2,33,55)  //獲取最大值  
  
  
extract(year/month/day from date) 從參數date中提取指定的數據類型,例如提取年、月、日  
例如:select extract(year from sysdate) from dual ;    
  
  
null和任何值進行運算,返回的都是null  
select * from tablename where column1 = null ;  //對於null 不能這樣進行比較  
正確方法:  
select * from tablename where column1 is null ;  
select * from tablename where column1 is not null ;  
  
  
空值函數  
nvl(col_null , col_not_null) 將null值轉變成非null值處理  請保持兩個參數的類型一致  
例如:select sal , comm , sal + nvl(comm , 0 ) as salary from emp ;  
  
  
nvl2(col_null , col_is_null , col_is_not_null) 將null值轉變成實際值  作用有點像三目表達式    
如果是null  轉成col_is_null ,如果不是null,轉成col_is_not_null  
select sal , comm , sal+nvl2( comm , 0 , 1000 ) as salary from emp ;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章