发新话题
打印

一个select查询的问题,大家帮忙看下

EXEC SQL SELECT SUM(money) into totalmoney from TH_SERIALNOTABLE
WHERE JOBNO=ct_serial.jobno AND TRBRNO=ct_serial.trbrno and DCFLAG=ct_serial.dcflag and TOTALFLAG=ct_serial.totalflag and TRADESTATUS=ct_serial.tradestatus;

ct_serial是结构体.
现在的问题是,后面的条件JOBNO=ct_serial.jobno ,TRBRNO=ct_serial.trbrno 等等,可能ct_serial.jobno的值是空的,我现在想让where后面的条件是一个变量,如果ct_serial.trbrno等的值为空,就不要加在条件里,可是我刚学数据库,不知道该怎实现,大家帮看下吧  谢谢 谢谢

TOP

如果ct_serial.trbrno等的值为空,就不要加在条件里
可以这样理解:即JOBNO=ct_serial.jobno条件不成立
那么可以用空值转换函数处理,
在Oracle中:
……JOBNO=nvl(ct_serial.jobno,999999)……
在SQLserver、Sybase中:
……JOBNO=IsNull(ct_serial.jobno,999999)……
999999是随便设的值,要保证JOBNO不可能等于这个值则ct_serial.jobno的值是空时条件不成立
如果ct_serial.jobno是字符型的,将999999改为一个怪字符

TOP

发新话题