Miracle_Qsc 2011-10-12 13:05
浏览 238
已采纳

oracle查询问题

一张表有60个字段,如何查出这60个字段全部不为空的记录个数,小弟没思路,麻烦大家指点一下,谢谢

  • 写回答

6条回答 默认 最新

  • iteye_8576 2011-10-12 13:36
    关注

    字段少的时候:
    [code="sql"]select count(*) from tb where a is null and b is null[/code]

    字段多的时候,:
    [code="sql"]
    DECLARE
    TYPE myref IS REF CURSOR;
    cur myref;
    sqlStr VARCHAR2(200);
    tb_name VARCHAR2(20);
    TYPE arrays IS TABLE OF VARCHAR2(20) INDEX BY BINARY_INTEGER;
    column_array arrays;
    null_num INTEGER;
    BEGIN
    tb_name := 'TB';
    sqlStr := 'SELECT column_name FROM user_tab_columns WHERE table_name = ''' ||
    tb_name || '''';
    OPEN cur FOR sqlStr;
    FETCH cur BULK COLLECT
    INTO column_array;
    CLOSE cur;

    sqlStr := 'SELECT COUNT(*) FROM ' || tb_name || ' WHERE 1=1';
    FOR i IN column_array.FIRST .. column_array.LAST LOOP
        sqlStr := sqlStr || ' AND ' || column_array(i) || ' IS NULL ';
    END LOOP;
    
    EXECUTE IMMEDIATE sqlStr
        INTO null_num;
    -- 都为空的记录数
    dbms_output.put_line(null_num);
    

    END;
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 如何实验stm32主通道和互补通道独立输出
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题