我创建了以下选择并计算“缺失”值
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?
我刚刚遇到了同样的问题。
从图片中不清楚选择了多少条记录。我的驱动程序从第一条记录确定数据类型。如果第一条记录中的值为null,则驱动程序将该列解释为字符串(32767)。如果第一条记录是有效整数,则该列将被解释为整数。
可能的解决方案是改变CAST((O_LROU_CSLCNT-O_LROU_CSLCNTPICKED)为整数)至IFNULL(O_LROU_CSLCNT-O_LROU_CSLCNTPICKED),0)接受将null更改为零可能不被您的应用程序接受。