一、oracle的nvl函式用法【從兩個表示式返回乙個非 null 值。】
?
語法【nvl(eexpression1, eexpression2)】
引數【eexpression1, eexpression2】
如果 eexpression1 的計算結果為 null 值,則 nvl( ) 返回 eexpression2。如果 eexpression1 的計算結果不是 null 值,則返回 eexpression1。eexpression1 和 eexpression2 可以是任意一種資料型別。如果 eexpression1 與 eexpression2 的結果皆為 null 值,則 nvl( ) 返回 .null.。
返回值型別【字元型、日期型、日期時間型、數值型、貨幣型、邏輯型或 null 值】
在不支援 null 值或 null 值無關緊要的情況下,可以使用 nvl( ) 來移去計算或操作中的 null 值。
【select nvl(a.name,『空得』) as name from student a join school b on a.id=b.id】
注意:兩個引數得型別要匹配
例如:
select t.d_fdate,
t.vc_zhcode,
nvl(sum(t.f_fzqsz), 0) f_price_b,
nvl(sum(t.f_fzqcb), 0) f_cost_b,
nvl(sum(t.f_fgz_zz), 0) f_gz_b,
nvl(sum(t.f_fyzqsz), 0) f_price_y,
nvl(sum(t.f_fyzqcb), 0) f_cost_y,
nvl(sum(t.f_fygz_zz), 0) f_gz_y,
t.vc_source,
sysdate d_updatetime
from gz_fund_gzb t;
比如這樣的判斷就很重要啦,因為你不知道哪一行是 is not null 的,也不知道接下來是否要對這個單元格進行運算操作,因此,不能給列填 null,就給它乙個 0 ,便於檢視,也便於運算。
二、用oracle儲存過程將一張表的資料查出插入另一張表?
create or replace procedure test
is begin
--兩個表字段一樣
insert into 表名1 select * from 表名2;
--欄位不一樣
insert into 表名1(欄位1,欄位2,欄位3) select 欄位1,欄位2,欄位3 from 表名2;
commit;
end
三、擷取字段值
1、substr函式格式 (俗稱:字元擷取函式)
格式1: substr(string string, int a, int b);
格式2:substr(string string, int a) ;
解釋:
格式1:
1、string 需要擷取的字串
2、a 擷取字串的開始位置(注:當a等於0或1時,都是從第一位開始擷取)
3、b 要擷取的字串的長度
格式2:
1、string 需要擷取的字串
2、a 可以理解為從第a個字元開始擷取後面所有的字串。
四、oracle獲取字串長度函式length()和lengthb()?
lengthb(string) 計算string所佔的位元組長度:返回字串的長度,單位是位元組
length(string) 計算string所佔的字元長度:返回字串的長度,單位是字元
對於單位元組字元,lengthb和length是一樣的.
如可以用length(『string』)=lengthb(『string』)判斷字串是否含有中文。
五、擷取系統當前日期
方式1:extract(year from sysdate)
方式2:substr(to_char(sysdate,『yyyy-mm-dd』),1,7)
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...