null加任何一個值都等於null
所以你要和100相加,先轉換isnull(字段,0)

解决方案 »

  1.   

    因为NULL与任何值的计算结果都是NULL
    所以+的话,其中任何一个值是NULL,整个结果都是NULL
    解决的方法是用类似下面的方法处理:
    isnull(字段,0)+100
      

  2.   

    表达能力太差了我觉得楼主说他
    用left join 得到的结果是
    zkzh  bdbj ...  qsh 
    ...   ...  ...  NULL用right join 得到的结果是
    zkzh  bdbj ...  qsh 
    NULL  NULL NULL 100他想得到
    zkzh  bdbj ...  qsh 
    ...   ...  ...  100描述完问题了,我觉得这样的结果说明你的条件
    on bjqsch.xh=a.xh
    是不合理的
    所以你改成:
    select a.zkzh, a.bdbj,a.xydm,a.zydm,a.bjdm, a.xm,a.bdzh,a.xh,a.lxdh,a.bmmc,a.zymc,bjqsch.qsh from (select xsxxb.zkzh, xsxxb.bdbj,xsxxb.xydm,xsxxb.zydm,xsxxb.bjdm, xsxxb.xm,xsxxb.bdzh,xsxxb.xh,xsxxb.lxdh,bmb.bmmc,zyb.zymc from  xsxxb,bmb,zyb where  xsxxb.zydm=zyb.zydm and xsxxb.xydm=bmb.bmdm and xsxxb.xh='200405006110') a cross join bjqsch看看对不对?
    (不知道你是否只返回一条记录)
      

  3.   

    结早了,
    select a.zkzh, a.bdbj,a.xydm,a.zydm,a.bjdm, a.xm,a.bdzh,a.xh,a.lxdh,a.bmmc,a.zymc,bjqsch.qsh from (select xsxxb.zkzh, xsxxb.bdbj,xsxxb.xydm,xsxxb.zydm,xsxxb.bjdm, xsxxb.xm,xsxxb.bdzh,xsxxb.xh,xsxxb.lxdh,bmb.bmmc,zyb.zymc from  xsxxb,bmb,zyb where  xsxxb.zydm=zyb.zydm and xsxxb.xydm=bmb.bmdm and xsxxb.xh='200405006110') a cross join bjqsch
    是正确的,不过
    我换个学号qsh还是10,应该是null的.
    你这个语句是不是无论哪个学号,qsh都是10啊,晕.