新聞中心
oracle中如何查詢一條記錄中都有那個(gè)字段是空值
需要用到循環(huán)及動(dòng)態(tài)sql。
目前創(chuàng)新互聯(lián)公司已為上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、察隅網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
如test表中有如下數(shù)據(jù),其中id和name列有空值。
執(zhí)行以下內(nèi)容:
declare?
v_count?int;--定義變量
v_col?varchar2(20);--定義變量
v_sql?varchar2(2000);--定義變量
v_last_col?varchar2(20);--定義變量
cursor?cur_col?is?select?column_name?from?user_tab_cols?where?table_name='TEST'?order?by?column_id;--定義游標(biāo)
begin
select?column_name?into?v_last_col??from?user_tab_cols?where?table_name='TEST'?and?column_id=(select?max(column_id)?from?user_tab_cols?where?table_name='TEST');--取出表中最后一個(gè)字段放入v_last_col
open?cur_col;--打開(kāi)游標(biāo)
loop?--執(zhí)行循環(huán)
fetch?cur_col?into?v_col;--取出游標(biāo)內(nèi)容到變量v_col
v_sql:='select?count(*)?from?TEST?where?'||v_col||'?is?null';
execute?immediate?v_sql?into?v_count;--執(zhí)行動(dòng)態(tài)sql
if?v_count0--如果查詢有空值的字段不為空,則輸出此字段名
then
dbms_output.put_line(v_col);?
end?if;
exit?when?v_col=v_last_col;?--退出循環(huán)條件
end?loop;--結(jié)束循環(huán)
close?cur_col;--關(guān)閉游標(biāo)
end;
執(zhí)行結(jié)果:
求助,Oracle里如何判斷NULL
空值null比較特殊,它不能通過(guò)=或者進(jìn)行查詢,只能用is null或者is not null進(jìn)行查詢,例如你的數(shù)據(jù)中有null值,那么用 字段名=1,字段名1,字段名=null都不能把這條數(shù)據(jù)檢索出來(lái),只有字段名 is null能檢索出來(lái)。 所以你需要查詢的數(shù)據(jù)有兩種
ORACLE 數(shù)據(jù)庫(kù)中的NUMBER類型的字段為NULL時(shí)怎么處理?
1、創(chuàng)建一張數(shù)據(jù)庫(kù)測(cè)試表,用于演示null空值的查詢。
2、往測(cè)試表中插入測(cè)試記錄,包含一個(gè)NULL、空字符串、非空字符串值。
3、查詢測(cè)試表中的所有數(shù)據(jù),select * from tblNullData。
4、在oracle數(shù)據(jù)庫(kù)中,null與任何字段相比都會(huì)返回false,為此,oracle提供了一個(gè)is null詞組判斷null。從運(yùn)行結(jié)果可以看出,空字符串不是null select * from tblNullData where ColName is null。
5、在oracle數(shù)據(jù)庫(kù)中,想要查詢非null的值,就需要使用is not null詞組判斷了。從運(yùn)行結(jié)果可以看出,空字符串的記錄行查詢出來(lái)了select * from tblNullData where ColName is not null。
分享標(biāo)題:oracle怎么查空值 oracle中空值判斷
文章源于:http://fisionsoft.com.cn/article/hjgojp.html