oracle中如何查询一条记录中都有那个字段是空值

oracle中如何查询一条记录中都有那个字段是空值... oracle中如何查询一条记录中都有那个字段是空值 展开
 我来答
badkano
推荐于2018-03-02 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885359
团长

向TA提问 私信TA
展开全部

需要用到循环及动态sql。

如test表中有如下数据,其中id和name列有空值。

执行以下内容:

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;--定义游标
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;

执行结果:

samondal11
推荐于2016-08-21 · 超过13用户采纳过TA的回答
知道答主
回答量:60
采纳率:100%
帮助的人:31.8万
展开全部
可以用这样的方法 :把每个字段count一下,再与count(1)比较下;
select count(1),count(字段1),count(字段2),···count(字段n)
from table1;
结果小于count(1)的字段就有空值。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清澈且深湛灬风光g
2012-02-25
知道答主
回答量:62
采纳率:0%
帮助的人:17.4万
展开全部
KC8段?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式