Oralce nvl函數(shù) nvl(colB,colA);說(shuō)明一下這個(gè)函數(shù) NVL( string1, replace_with),如果string1為null,那么就取后面一個(gè)的值(replace_with),和mysql數(shù)據(jù)庫(kù)的 ifnull(string1,replace_with)效果一樣
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比閩清網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式閩清網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋閩清地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴。
順便說(shuō)下nvl2函數(shù):
NVL2函數(shù) Oracle/PLSQL中的一個(gè)函數(shù)Oracle在NVL函數(shù)的功能上擴(kuò)展,提供了NVL2函數(shù)。NVL2(E1, E2, E3)的功能為:如果E1為NULL,則函數(shù)返回E3,若E1不為null,則返回E2。
decode只是改變列的顯示,需要結(jié)果為一行你需要增加where語(yǔ)句進(jìn)行數(shù)據(jù)過(guò)濾。
oracle中sum分組取值/匯總值用如下方法。
如emp表中有如下數(shù)據(jù):
現(xiàn)要按deptno分組,求每組中sal的值/匯總值,可用如下語(yǔ)句:
select?deptno,sum(sal)/(select?sum(sal)?from?emp)?from?emp?group?by?deptno;
查詢結(jié)果:
如果Oracle版本不是太低的話,使用 正則表達(dá)式函數(shù) REGEXP_SUBSTR 處理。\x0d\x0a\x0d\x0a5個(gè)參數(shù)\x0d\x0a第一個(gè)是輸入的字符串\x0d\x0a第二個(gè)是正則表達(dá)式\x0d\x0a第三個(gè)是標(biāo)識(shí)從第幾個(gè)字符開(kāi)始正則表達(dá)式匹配。(默認(rèn)為1)\x0d\x0a第四個(gè)是標(biāo)識(shí)第幾個(gè)匹配組。(默認(rèn)為1)\x0d\x0a第五個(gè)是是取值范圍:\x0d\x0ai:大小寫(xiě)不敏感;\x0d\x0ac:大小寫(xiě)敏感;\x0d\x0an:點(diǎn)號(hào) . 不匹配換行符號(hào);\x0d\x0am:多行模式;\x0d\x0ax:擴(kuò)展模式,忽略正則表達(dá)式中的空白字符。\x0d\x0a\x0d\x0aSQL SELECT\x0d\x0a 2 REGEXP_SUBSTR(a,'[0-9]+')\x0d\x0a 3 FROM\x0d\x0a 4 test_reg_substr\x0d\x0a 5 WHERE\x0d\x0a 6 REGEXP_LIKE(a, '[0-9]+');