oralce中,某一条记录中怎么得到这条记录中字段值为空的总数呢?(不为空的总数也可)
比如:id a1 a2 a3 a4 ... an
id=1的记录中a1,a2 a3...ak不为空,剩下的ak到an为空,我要怎么得到为空或不为空的字段数呢?(字段很多,一个一个判断不是很方便)。
小弟拜谢

解决方案 »

  1.   

    你是在程序中判断还是直接用sql命令啊?用命令的话好象有点难度.
      

  2.   

    SQL语句 是有些难度我感觉
      

  3.   

    考虑一个方案,将 这些字段组合起来 + 替换1 2 3 4 空 => 替换为 1234[特殊字符] => 统计 [特殊字符个数]
      

  4.   

    列变行,之后count列值为null的个数
      

  5.   

    with as (select a1||a2..||nvl(ak,$)||..||nvl(an,$) re from t)
    select length(translate(re, '$'||re, '$')) len from t
      

  6.   

    像这种想返回不为空值的字段,不管采取哪种手段,一般,得到的都只是个数(结果),如果你想在命令中直接得到字段的名称,我反正是感觉只有写函数...但是写函数呢,我还嫌它麻烦,写什么函数呀,我才懒得搞.以前我在程序里也有这种需要,一个循环直接就搞定了..程序代码处理起来超级简单...sql命令真得很麻烦..
      

  7.   


    select count(* ),id from usermodule group by id;
      

  8.   

    定义一个游标用系统函数把这张表的所有列名查出来,再在循环里动态构造sql语句执行后获取结果,再分析即可。参考下面地址9楼
    http://topic.csdn.net/u/20120726/11/c2edd2fe-10ad-44dc-b51b-0beeaedeafe5.html