oracle易忘函数用法(1)
一般的to_char是這樣用的to_char(sysdate,'YYYY-MM-DD hh:mi:ss AM')?,也有幾個(gè)突出點(diǎn)的用法:
to_char(sysdate, 'dd') 查看今天是幾號(hào)to_char(sysdate, 'ww') 查看這是這個(gè)月第幾個(gè)星期
to_char(sysdate, 'mm')? 查看這是一年中第幾個(gè)月
to_char(sysdate, 'yyyy') 查看年份
last_day(to_date('2007-02-01','YYYY-MM-DD'))查看一個(gè)月的最后一 天,add_months(sysdate,10)查看若干個(gè)月后的今天,next_day(sysdate,'星期五')給個(gè)日期查看后面的最近的星期 幾的日期,不過(guò)這個(gè)星期五要是換成英文居然有問(wèn)題,第2個(gè)參數(shù)可以是數(shù)字1-7,分別表示周日到周六。
下面貼個(gè)全的,需要的時(shí)候順便查一下。
一、PL/SQL單行函數(shù)和組函數(shù)詳解
函數(shù)是一種有零個(gè)或多個(gè)參數(shù)并且有一個(gè)返回值的程序。在SQL中Oracle內(nèi)建了一系列函數(shù),這些函數(shù)都可被稱(chēng)為SQL或PL/SQL語(yǔ)句,函數(shù)主要分為兩大類(lèi):單行函數(shù)和組函數(shù)。
本文將討論如何利用單行函數(shù)以及使用規(guī)則。
1、SQL中的單行函數(shù)
SQL和PL/SQL中自帶很多類(lèi)型的函數(shù),有字符、數(shù)字、日期、轉(zhuǎn)換、和混合型等多種函數(shù)用于處理單行數(shù)據(jù),因此這些都可被統(tǒng)稱(chēng)為單行函數(shù)。這些 函數(shù)均可用于SELECT,WHERE、ORDER BY等子句中,例如下面的例子中就包含了TO_CHAR,UPPER,SOUNDEX等單行函數(shù)。
| SELECT ename,TO_CHAR(hiredate,'day,DD-Mon-YYYY')FROM empWhere UPPER(ename) Like 'AL%'ORDER BY SOUNDEX(ename) |
單行函數(shù)也可以在其他語(yǔ)句中使用,如update的SET子句,INSERT的VALUES子句,DELET的WHERE子句,認(rèn)證考試特別注意在SELECT語(yǔ)句中使用這些函數(shù),所以我們的注意力也集中在SELECT語(yǔ)句中。
2、NULL和單行函數(shù)
在如何理解NULL上開(kāi)始是很困難的,就算是一個(gè)很有經(jīng)驗(yàn)的人依然對(duì)此感到困惑。NULL值表示一個(gè)未知數(shù)據(jù)或者一個(gè)空值,算術(shù)操作符的任何一個(gè)操 作數(shù)為NULL值,結(jié)果均為提個(gè)NULL值,這個(gè)規(guī)則也適合很多函數(shù),只有CONCAT,DECODE,DUMP,NVL,REPLACE在調(diào)用了 NULL參數(shù)時(shí)能夠返回非NULL值。在這些中NVL函數(shù)時(shí)最重要的,因?yàn)樗苤苯犹幚鞱ULL值,NVL有兩個(gè)參數(shù):NVL(x1,x2),x1和x2 都式表達(dá)式,當(dāng)x1為null時(shí)返回X2,否則返回x1。
下面我們看看emp數(shù)據(jù)表它包含了薪水、獎(jiǎng)金兩項(xiàng),需要計(jì)算總的補(bǔ)償。
| column name emp_id salary bonuskey type pk nulls/unique nn, u nnfk table datatype number number numberlength 11.2 11.2 |
不是簡(jiǎn)單的將薪水和獎(jiǎng)金加起來(lái)就可以了,如果某一行是null值那么結(jié)果就將是null,比如下面的例子:
| update empset salary=(salary+bonus)*1.1 |
這個(gè)語(yǔ)句中,雇員的工資和獎(jiǎng)金都將更新為一個(gè)新的值,但是如果沒(méi)有獎(jiǎng)金,即 salary + null,那么就會(huì)得出錯(cuò)誤的結(jié)論,這個(gè)時(shí)候就要使用nvl函數(shù)來(lái)排除null值的影響。
所以正確的語(yǔ)句是:
| update empset salary=(salary+nvl(bonus,0)*1.1 |
3、單行字符串函數(shù)
單行字符串函數(shù)用于操作字符串?dāng)?shù)據(jù),他們大多數(shù)有一個(gè)或多個(gè)參數(shù),其中絕大多數(shù)返回字符串。
ASCII()
c1是一字符串,返回c1第一個(gè)字母的ASCII碼,他的逆函數(shù)是CHR()
| SELECT ASCII('A') BIG_A,ASCII('z') BIG_z FROM empBIG_A BIG_z65 122 |
CHR()[NCHAR_CS]
i是一個(gè)數(shù)字,函數(shù)返回十進(jìn)制表示的字符。
| select CHR(65),CHR(122),CHR(223) FROM empCHR65 CHR122 CHR223A z B |
CONCAT(,)
c1,c2均為字符串,函數(shù)將c2連接到c1的后面,如果c1為null,將返回c2.如果c2為null,則返回c1,如果c1、c2都為null,則返回null。他和操作符||返回的結(jié)果相同
select concat('slobo ','Svoboda') username from dualusernameslobo Syoboda
總結(jié)
以上是生活随笔為你收集整理的oracle易忘函数用法(1)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 汽车行业DOM指什么?
- 下一篇: oracle易忘函数用法(2)