作为SQL查询的一部分,我有以下内容
iif(rapport_nc, 35, 0) AS rapport
如果第一条记录返回0(表示情况),则每条返回35的记录都会出现数字溢出错误。
如果没有"按摩"我怎样才能解决这个问题?数据?
答案 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