我创建了以下选择并计算“缺失”值
select strftime('%d.%m. %H:%M', O_LROU_DEPARTDATE) || ' - ' || O_LROU_IDENT as Ident,
O_LROU_CSLCNTPICKED as 'done',
CAST((O_LROU_CSLCNT - O_LROU_CSLCNTPICKED) as integer) as 'missing'
from RAW_OM36
where (O_LROU_CSLCNT - O_LROU_CSLCNTPICKED) > 0
但是缺失的值仍然是文本而不是整数。 Here a picture! What's going wrong?
答案 0 :(得分:0)
我刚刚遇到了同样的问题。
从图片中不清楚选择了多少条记录。我的驱动程序从第一条记录确定数据类型。如果第一条记录中的值为null,则驱动程序将该列解释为字符串(32767)。如果第一条记录是有效的整数,则该列将被解释为整数。
一个可能的解决方案是改变 CAST((O_LROU_CSLCNT-O_LROU_CSLCNTPICKED)为整数) 至 IFNULL(O_LROU_CSLCNT-O_LROU_CSLCNTPICKED),0) 接受将null更改为零可能不被您的应用程序接受。