我在尝试对informix中的sql查询执行强制转换时遇到问题。我有一个表,其中有一个名为ponbr
的列,我正在查询它。它的数据类型是CHAR(8)
。
这是我的查询,运行良好并返回记录
select * from xxx_shp where '02573569' = ponbr
但是,如果我键入此查询,它将不返回任何内容:
select * from xxx_shp where to_char(02573569) = ponbr
这也不会返回任何内容:
select * from xxx_shp where ponbr = CAST (02573569 AS char(8))
我在这里做错什么了?
最佳答案
我很确定你的问题是零开头。如果您知道ponbr
是一个数字,则将其作为一个数字进行比较:
where 02573569 = cast(ponbr as int)
否则,包括前导零:
where to_char(02573569, '&&&&&&&&') = ponbr