Oracle中取出一个表内所有空值的个数

Oracle中取出一个表内所有空值的个数我要将一个表中所有的空值的个数取出来比如nameagesex-----------------aaa15bbb女ddd男eee16... Oracle中取出一个表内所有空值的个数

我要将一个表中所有的空值的个数取出来 比如

name age sex
-----------------
aaa 15
bbb 女
ddd 男
eee 16 男

这里面就是一共有三个空值 怎么样才能取出来这个值呢
我是在Oracle中使用
这个 我只是举了个例子 我的表最少的也有43个字段 多的有174个 我不想一个一个的做判断 有没有什么简单的办法
展开
 我来答
华夏日长兴
2009-11-07 · TA获得超过9592个赞
知道大有可为答主
回答量:6305
采纳率:85%
帮助的人:3720万
展开全部
select (select count(*) from table where age is null)+
(select count(*) from table where sex is null) from dual;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
奔驰M888
2009-11-07 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1846
采纳率:0%
帮助的人:2702万
展开全部
弄个存储过程:

create or replace procedure select_null_count(
return_cnt out number,
table_name varchar2
)as
cnt_tmp number :=0;
sql_str varchar(32767);
cursor cur(tname varchar2) is
select column_name from user_tab_columns where table_name = tname;
begin
return_cnt := 0;
for rec in cur(table_name) loop
sql_str := ' ';
sql_str := 'select count(*) from '||upper(table_name)||' where '||rec.column_name||' is null';
execute immediate sql_str into cnt_tmp;
return_cnt := return_cnt + cnt_tmp;
end loop;
end;
/

调用方法如下:

SQL>select * from test1;

部门 岗位 工资
---------- ---------- ----------
部门1 职位1 10
部门1 职位1 20
部门1 职位1 30
部门1 职位2 40
部门1 职位2 50
职位1 60
职位1 70
职位2 80
职位2 90

9 rows selected.

SQL>var cnt number
SQL>exec select_null_count(:cnt,'TEST1')

PL/SQL procedure successfully completed.

SQL>print cnt

CNT
----------
4

---
以上,希望对你有所帮助。

---
以上,希望对你有所帮助。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式