查询中的数字溢出

时间:2014-08-19 07:27:04

标签: foxpro visual-foxpro

作为SQL查询的一部分,我有以下内容

iif(rapport_nc, 35, 0) AS rapport

如果第一条记录返回0(表示情况),则每条返回35的记录都会出现数字溢出错误。

如果没有"按摩"我怎样才能解决这个问题?数据?

3 个答案:

答案 0 :(得分:4)

使用CAST()包装具有可变返回长度的表达式是一种很好的做法。例如:

CAST(IIF(rapport_nc, 35, 0) AS I)

答案 1 :(得分:2)

Bernard(和其他VFP新手)。 VFP查询实际上运行了两次查询,一次用于第一个记录,只是为了确认最终的列类型和大小,然后是对所有记录的实际查询。因此,作为您的IIF(),如果您的表的第一个记录是0的结果,那么它将最终列大小设置为1位数,从而失败。因此,您的IIF解决方案(条件,35,00)现在将两个可能的答案识别为2位数。如果修剪字符串(例如修剪名称,地址或类似字符串)并且通常使用PADR(somefield,finalLengthWanted)解析,也会发生这种情况。

答案 2 :(得分:0)

我想过尝试“IIF(rapport_nc,35,00)AS rapport”并且它有效。抱歉,添麻烦了。 / B