oracle易忘函式用法 1

2022-05-06 13:48:10 字數 2346 閱讀 5221

一般的to_char是這樣用的to_char(sysdate,'yyyy-mm-dd hh:mi:ss am') ,也有幾個突出點的用法:

to_char(sysdate, 'dd') 檢視今天是幾號to_char(sysdate, 'ww') 檢視這是這個月第幾個星期

to_char(sysdate, 'mm')  檢視這是一年中第幾個月

to_char(sysdate, 'yyyy') 檢視年份

last_day(to_date('2007-02-01','yyyy-mm-dd'))檢視乙個月的最後一 天,add_months(sysdate,10)檢視若干個月後的今天,next_day(sysdate,'星期五')給個日期檢視後面的最近的星期 幾的日期,不過這個星期五要是換成英文居然有問題,第2個引數可以是數字1-7,分別表示週日到週六。

下面貼個全的,需要的時候順便查一下。

一、pl/sql單行函式和組函式詳解

函式是一種有零個或多個引數並且有乙個返回值的程式。在sql中oracle內建了一系列函式,這些函式都可被稱為sql或pl/sql語句,函式主要分為兩大類:單行函式和組函式。

本文將討論如何利用單行函式以及使用規則。

1、sql中的單行函式

sql和pl/sql中自帶很多態別的函式,有字元、數字、日期、轉換、和混合型等多種函式用於處理單行資料,因此這些都可被統稱為單行函式。這些 函式均可用於select,where、order by等子句中,例如下面的例子中就包含了to_char,upper,soundex等單行函式。

select ename,to_char(hiredate,'day,dd-mon-yyyy')from

empwhere upper(ename) like 'al%'order by soundex(ename)

單行函式也可以在其他語句中使用,如update的set子句,insert的values子句,delet的where子句,認證考試特別注意在select語句中使用這些函式,所以我們的注意力也集中在select語句中。

2、null和單行函式

在如何理解null上開始是很困難的,就算是乙個很有經驗的人依然對此感到困惑。null值表示乙個未知資料或者乙個空值,算術操作符的任何乙個操 作數為null值,結果均為提個null值,這個規則也適合很多函式,只有concat,decode,dump,nvl,replace在呼叫了 null引數時能夠返回非null值。在這些中nvl函式時最重要的,因為他能直接處理null值,nvl有兩個引數:nvl(x1,x2),x1和x2 都式表示式,當x1為null時返回x2,否則返回x1。

下面我們看看emp資料表它包含了薪水、獎金兩項,需要計算總的補償。

column name emp_id salary bonuskey type pk nulls/unique nn,

u nnfk table datatype number number numberlength 11.2 11.2

不是簡單的將薪水和獎金加起來就可以了,如果某一行是null值那麼結果就將是null,比如下面的例子:

update empset salary=(salary+bonus)*1.1

這個語句中,雇員的工資和獎金都將更新為乙個新的值,但是如果沒有獎金,即 salary + null,那麼就會得出錯誤的結論,這個時候就要使用nvl函式來排除null值的影響。

所以正確的語句是:

update empset salary=(salary+nvl(bonus,0)*1.1

3、單行字串函式

單行字串函式用於操作字串資料,他們大多數有乙個或多個引數,其中絕大多數返回字串。

ascii()

c1是一字串,返回c1第乙個字母的ascii碼,他的逆函式是chr()

select ascii('a') big_a,ascii('z') big_z from empbig_a big_z65 122

chr()[nchar_cs]

i是乙個數字,函式返回十進位制表示的字元。

select chr(65),chr(122),chr(223) from empchr65 chr122 chr223a z b

concat(,)

c1,c2均為字串,函式將c2連線到c1的後面,如果c1為null,將返回c2.如果c2為null,則返回c1,如果c1、c2都為null,則返回null。他和操作符||返回的結果相同

select concat('slobo ','svoboda') username from dualusernameslobo syoboda

oracle易忘函式用法 2

initcap c1為一字串。函式將每個單詞的第乙個字母大寫其它字母小寫返回。單詞由空格,控制字元,標點符號限制。select initcap veni,vedi,vici ceasar from dualceasarveni,vedi,vici instr c1,c2均為字串,i,j為整數。函式返...

oracle易忘函式用法 5

6 單行轉換函式 單行轉換函式用於操作多資料型別,在資料型別之間進行轉換。chartorwid c 使乙個字串,函式將c轉換為rwid資料型別。select test id from test case where rowid chartorwid aaaa0saacaaaaliaaa conver...

oracle易忘函式用法 5

6 單行轉換函式 單行轉換函式用於操作多資料型別,在資料型別之間進行轉換。chartorwid c 使乙個字串,函式將c轉換為rwid資料型別。select test id from test case where rowid chartorwid aaaa0saacaaaaliaaa conver...