標籤:round ring convert com mp3 world date isp sum
nvl 函數
通過查詢獲得某個欄位的合計值,如果這個值位null將給出一個預設的預設值
selectnvl(sum(t.dwxhl),1)fromtb_jhdetwherezydm=-1
這裡關心的nvl的用法,nvl(arg,value)代表如果前面的arg的值為null那麼返回的值為後面的value
ESCAPE
escape關鍵字經常用於使某些特殊字元,如萬用字元:‘%’,‘——’轉義為他們原來的字元的意義,被定義的逸出字元通常使用‘\’,但是有時候也可以使用其他符號。
逸出字元為d,沒有實現轉義功能;
SQL>select*fromtestwheretestlike‘sddd_%‘escape‘d‘;
尋找包含所有‘_‘的欄位。
SQL>select*fromtestwheretestlike‘%\_%‘escape‘\‘;
連接字串 concat ||
--concat只能串連兩個字串,串連多個需要嵌套調用不方便SQL>selectconcat(‘aa‘,‘bb‘)fromdual; CONCAT(‘AA‘,‘BB‘)-----------------aabb--||直接連接多個字串SQL>select‘aa‘||‘bb‘||‘cc‘fromdual; ‘AA‘||‘BB‘||‘CC‘----------------aabbcc
字串截取
substr(字串,截取開始位置,截取長度) //返回截取的字
substr(‘HelloWorld‘,0,1)//返回結果為‘H‘*從字串第一個字元開始截取長度為1的字串
長度計算函數 length()與lengthb()
SQL>selectlength(‘新春快樂‘)fromdual;LENGTH(‘新春快樂‘)------------------SQL>selectlengthb(‘新春快樂‘)fromdual;LENGTHB(‘新春快樂‘)------------------- 區別:length求得是字元長度, lengthb求得是位元組長度。 ?
INSTR函數
-- 在指定的字串中檢索指定字元所在的索引位置
SQL>selectinstr(‘hello‘,‘l‘)fromdual;INSTR(‘HELLO‘,‘L‘)------------------在hellowolrd中截取出來world字串?SQL>selectsubstr(‘helloworld‘,instr(‘helloworld‘,‘‘))fromdual; SUBSTR------world 已選擇1行。 SQL>selectsubstr(‘helloworld‘,instr(‘helloworld‘,‘‘)+1)fromdual; SUBST-----world 已選擇1行。 lpad() rpad()參數1:指定原始的串 參數2:固定長度 參數3:填充的字元
SQL>selectlpad(‘jack‘,10,‘$‘)fromdual;LPAD(‘JACK‘,10,‘$‘)----------$$$$$$jackselectrpad(‘jack‘,10,‘$‘)fromdual;-----------jack$$$$$$
Next_day
計算出來下一個星期一是幾號?
selectnext_day(sysdate,‘星期一‘)fromdual;
round 四捨五入
NVL (expr1, expr2):
expr1為NULL,返回expr2;不為NULL,返回expr1。注意兩者的類型要一致
NVL2 (expr1, expr2, expr3) :
xpr1不為NULL,返回expr2;為NULL,返回expr3。expr2和expr3類型不同的話,expr3會轉換為expr2的類型
NULLIF (expr1, expr2):
相等返回NULL,不等返回expr1
decode()
主要作用:將查詢結果翻譯成其他值(即以其他形式表現出來,以下舉例說明);
使用方法:
Select decode(columnname,值1,翻譯值1,值2,翻譯值2,...值n,翻譯值n,預設值)
From talbename
Where …
其中columnname為要選擇的table中所定義的column,
·含義解釋:
decode(條件,值1,翻譯值1,值2,翻譯值2,...值n,翻譯值n,預設值)的理解如下:
if(條件==值1)thenreturn(翻譯值1)elsif(條件==值2)thenreturn(翻譯值2)......elsif(條件==值n)thenreturn(翻譯值n)elsereturn(缺省值)endif
註:其中預設值可以是你要選擇的column name 本身,也可以是你想定義的其他值,比如Other等;
表複製快速的建立的表結構?
create table emp10 as select * from emp where 1=12; insert into emp30 select * from emp where deptno=30;
Oracle 一些函數的使用