| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 18586 人关注过本帖
标题:字段不能为 null 值 解决方案 ?
只看楼主 加入收藏
hyz00001
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:168
专家分:137
注 册:2012-10-5
收藏
得分:0 
谢谢大家。
昨天晚上我自己已经琢磨出了一个方法,那就是逐一判断,代码如下:
UPDATE jqrwd SET bqll =jqrwd.bqll+iif(isnull(jq_1.amt),0,jq_1.amt),jqrwd.mat =jqrwd.mat +iif(isnull(jq_1.mat),0,jq_1.mat),jqrwd.lab =jqrwd.lab +iif(isnull(jq_1.lab),0,jq_1.lab),jqrwd.burden =jqrwd.burden +iif(isnull(jq_1.burden),0,jq_1.burden),jqrwd.sub =jqrwd.sub +iif(isnull(jq_1.sub),0,jq_1.sub),jqrwd.mei ='第一次核算 jq_1' from jq_1 WHERE jqrwd.no =jq_1.rwd AND !ISNULL(jq_1.rwd)

主要可能为null的字段在jq_1里面,我自己测试过,这个代码能恰好避免错误。
2014-05-22 11:14
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
逐一判断比出错要好
2014-05-22 11:45
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
以下是引用hyz00001在2014-5-22 11:14:59的发言:

谢谢大家。
昨天晚上我自己已经琢磨出了一个方法,那就是逐一判断,代码如下:
UPDATE jqrwd SET bqll =jqrwd.bqll+iif(isnull(jq_1.amt),0,jq_1.amt),jqrwd.mat =jqrwd.mat +iif(isnull(jq_1.mat),0,jq_1.mat),jqrwd.lab =jqrwd.lab +iif(isnull(jq_1.lab),0,jq_1.lab),jqrwd.burden =jqrwd.burden +iif(isnull(jq_1.burden),0,jq_1.burden),jqrwd.sub =jqrwd.sub +iif(isnull(jq_1.sub),0,jq_1.sub),jqrwd.mei ='第一次核算 jq_1' from jq_1 WHERE jqrwd.no =jq_1.rwd AND !ISNULL(jq_1.rwd)
 
主要可能为null的字段在jq_1里面,我自己测试过,这个代码能恰好避免错误。

虽然问题解决了,我还是建议你优化下代码:比如:bqll =jqrwd.bqll+iif(isnull(jq_1.amt),0,jq_1.amt),可以变成bqll=jqrwd.bqll+NVL(jq_1.amt,0)即可。这条命令执行的效果等同于你原来的那样,但是代码简洁了很多。
2014-05-22 15:25
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
如果不用SQL命令,会出现楼主说的问题吗

坚守VFP最后的阵地
2021-03-17 10:44
快速回复:字段不能为 null 值 解决方案 ?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025431 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved