oracle中如何查询一条记录中都有那个字段是空值
éè¦ç¨å°å¾ªç¯åå¨æsqlã
å¦test表ä¸æå¦ä¸æ°æ®ï¼å ¶ä¸idånameåæ空å¼ã
æ§è¡ä»¥ä¸å
容ï¼
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;--å®ä¹æ¸¸æ
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');--ååºè¡¨ä¸æåä¸ä¸ªå段æ¾å ¥v_last_col
open cur_col;--æå¼æ¸¸æ
loop --æ§è¡å¾ªç¯
fetch cur_col into v_col;--ååºæ¸¸æ å 容å°åév_col
v_sql:='select count(*) from TEST where '||v_col||' is null';
execute immediate v_sql into v_count;--æ§è¡å¨æsql
if v_count>0--å¦ææ¥è¯¢æ空å¼çå段ä¸ä¸ºç©ºï¼åè¾åºæ¤å段å
then
dbms_output.put_line(v_col);
end if;
exit when v_col=v_last_col; --éåºå¾ªç¯æ¡ä»¶
end loop;--ç»æ循ç¯
close cur_col;--å ³é游æ
end;
æ§è¡ç»æï¼
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2016-08-21
可以用这样的方法 :把每个字段count一下,再与count(1)比较下;
select count(1),count(字段1),count(字段2),···count(字段n)
from table1;
结果小于count(1)的字段就有空值。本回答被提问者采纳
select count(1),count(字段1),count(字段2),···count(字段n)
from table1;
结果小于count(1)的字段就有空值。本回答被提问者采纳
第2个回答 2012-02-25
KC8段?