当前位置: 代码迷 >> Oracle认证考试 >> Oracle认证:Oracle统计契合条件列总数
  详细解决方案

Oracle认证:Oracle统计契合条件列总数

热度:260   发布时间:2013-02-26 00:00:00.0
Oracle认证:Oracle统计符合条件列总数
  Oracle认证:Oracle统计符合条件列总数。最近在项目报表中需要一个查询语句,用来统计符合某一列条件的其它几列的个数。
  比如有下面一个表结构:

  需要在列D后面增加一列,统计在列A不为空,并且列B、C、D不为空的个数
  经过自己试验,查找帮助,总算实现了上面的查询。
  首先讲几个函数的用法:
  NULL:指的是空值,或者非法值。
  NVL (expr1, expr2)
  参数说明:如果expr1为NULL,返回expr2;不为NULL,返回expr1.注意两者的类型要一致
  NVL2 (expr1, expr2, expr3)
  参数说明:如果expr1不为NULL,返回expr2;为NULL,返回expr3.expr2和expr3类型不同的话,expr3会转换为expr2的类型
  NULLIF (expr1, expr2)
  参数说明:如果相等返回NULL,不等返回expr1
  下面是本人通过两种方法实现的结果
  方法一:
  代码
  1 Select a,
  2   b,
  3   c,
  4   d,
  5   Case
  6   When a Is Not Null Then
  7   Nvl2(b, 1,0) + Nvl2(c, 1,0) + Nvl2(d, 1,0)
  8   Else
  9   0
  10   End E
  11 From AA
  方法二:
  代码
  1 Select a,
  2   b,
  3   c,
  4   d,
  5   Case
  6   When a Is Not Null Then

  7   decode(b,‘’,0,1) + decode(c,‘’,0,1) + decode(d,‘’,0,1)
  8   Else
  9   0
  10   End E
  11 From AA

  相关解决方案