一张表有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]本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 java业务性能问题求解(sql,业务设计相关)
- ¥15 52810 尾椎c三个a 写蓝牙地址
- ¥15 elmos524.33 eeprom的读写问题
- ¥15 使用Java milo连接Kepserver服务端报错?
- ¥15 用ADS设计一款的射频功率放大器
- ¥15 怎么求交点连线的理论解?
- ¥20 软件开发方法学习来了
- ¥15 微信小程序商城如何实现多商户收款 平台分润抽成
- ¥15 HC32L176调试了一个通过TIMER5+DMA驱动WS2812B
- ¥15 关于自相关函数法和周期图法实现对随机信号的功率谱估计的matlab程序运行的问题,请各位专家解答!