oracle常用函式

2021-10-25 03:27:03 字數 3158 閱讀 2976

decode(條件,值1,翻譯值1,值2,翻譯值2,...值n,翻譯值n,預設值)

if (條件==值1)

then    

return(翻譯值1)

elsif (條件==值2)

then    

return(翻譯值2)    

elsif (條件==值n)

then    

return(翻譯值n)

else    

return(預設值)

end if

trunc()函式的用法

/**************日期********************/

1.select trunc(sysdate) from dual --2013-01-06 今天的日期為2013-01-06

2.select trunc(sysdate, 'mm') from dual --2013-01-01 返回當月第一天.

3.select trunc(sysdate,'yy') from dual --2013-01-01 返回當年第一天

4.select trunc(sysdate,'dd') from dual --2013-01-06 返回當前年月日

5.select trunc(sysdate,'yyyy') from dual --2013-01-01 返回當年第一天

6.select trunc(sysdate,'d') from dual --2013-01-06 (星期天)返回當前星期的第一天

7.select trunc(sysdate, 'hh') from dual --2013-01-06 17:00:00 當前時間為17:35

8.select trunc(sysdate, 'mi') from dual --2013-01-06 17:35:00 trunc()函式沒有秒的精確

一般用作條件判斷 例子: where  xx>trunc(sysdate,'dd') 大於今天 (就是今天00.00之後開始產生的資料)

to_date('..','..')

select to_date('2020-10-23 ','yyyy-mm-dd') from dual; //就是將對應的格式轉換成date格式2020/10/23

輸出:2020/10/23

to_char(date,'格式');//一般用作日期轉換

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;  //將sysdate按照指定格式輸出

輸出:2020-10-23 09:20:30

修改日期格式為年月日時分秒: alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowtime from dual; //日期轉化為年月日時分秒格式

select to_char(sysdate,'yyyy')   nowyear from dual;      //獲取時間的年

select to_char(sysdate,'mm')    nowmonth from dual;  //獲取時間的月

select to_char(sysdate,'dd')      nowday from dual;       //獲取時間的日

select to_char(sysdate,'hh24')  nowhour from dual;     //獲取時間的時

select to_char(sysdate,'mi')      nowminute from dual;  //獲取時間的分

select to_char(sysdate,'ss')       nowsecond from dual;  //獲取時間的秒

nvl(aab001,值x)

判斷是否為空並對其賦值,如果aab001為空則取 值x,如果不為空則取自己aab001

case when then else end

常見例子1:

select

sname,

case

when *** = '1' then '男'

when *** = '2' then '女'

else '其他'

end as ***

from

student //case 後面接屬性*** : case *** when *** =... 和不接是一樣的 該函式一般用來做條件比較取對應合適的值

常見例子2: select a,

sum(case when lx= '付款成功' then '1' else 0 end) as '收款個數'

from

p //case和sum組合使用 ,case將型別分別賦值數字,sum對其進行求和,最後可以得到對應付款成功的個數

upper() 和 lower()

upper()將小寫的全置大寫輸出;lower()將大寫的全置小寫輸出;

select upper('abcabc我') from dual; //輸出『』abcabc我『』

select lower('abcabc我') from dual ;//輸出『』abcabc我『』

instr()  字元查詢函式

格式一:instr( string1, string2 )    // instr(源字串, 目標字串)  

例子:

select instr('helloworld','l') from dual; --返回結果:3    預設第一次出現「l」的位置

select instr('helloworld','l',2,2) from dual; --返回結果:4 也就是說:在"helloworld"的第2(e)號位置開始,查詢第二次出現的「l」的位置

select instr('helloworld','l',-2,2) from dual; --返回結果:4 也就是說:在"helloworld"的倒數第2(l)號位置開始,往回查詢第二次出現的「l」的位置

Oracle常用函式

一 row number over 資料甲 1 select column name column name,data type,2 row number over partition by column name order by column name row num 3 from test c...

Oracle常用函式

數學函式 1.絕對值 o select abs 1 value from dual 2.取整 大 o select ceil 1.001 value from dual 3.取整 小 o select floor 1.001 value from dual 4.取整 擷取 o select trun...

oracle常用函式

1.concat c1,c2均為字串,函式將c2連線到c1的後面,如果c1為null,將返回c2.如果c2為null,則返回c1,如果c1 c2都為null,則返回null。他和操作符 返回的結果相同 select concat slobo svoboda username from dualuse...