一个SQL的问题。(40分)

  • 主题发起人 主题发起人 5i1zhou
  • 开始时间 开始时间
5

5i1zhou

Unregistered / Unconfirmed
GUEST, unregistred user!
在一个综合查询中得到资料:
A B C
ab 25 null
ac 36 25
cd 56 null
//要求 B-C 得D
A D
ab 25
ac 11
cd 56
//我的结果中总是56-null=null;而且用IIF不起作用。先多谢了。
 
看来是你对用的数据库还不是很熟悉。不过我对你所用的数据库也不是很清楚,虽然你并没
说出你所用的数据库的名称。
我用oracle,可以通过函数nvl来实现对空值的判断:
select a,nbl(b,0)-nvl(c,0) d from tabname;

你仔细参考一下你所用数据库中的空值判断函数就可以了。
 
你为什么要在库里NULL呢,如果没有数据你就默认为0不就可以了吗
 
56-null=null
max(null)=null
sum(null)=null
只要有null就是null,所以,你要自己处理
比如56-ifnull(field1,0)
(ifnull是SQL Server的)
 
为什么不给c字段加上默认值:如果是空则变成0!
在程序中也可以先判断一下,如果为空就把它变成0
反正我是这么做的!
 
你可以用 isnull(字段,0)
如 Select ...,isnull(b,0),isnull(c,0)...
这样查询出来B,C的结果如果是NULL就是0了
 
谢谢各位。。
我以解决。用了NZ()
bestxxs可要和我一样好好学习了。
因为我的数据可是综合查询的再查询计算啊。
 
后退
顶部