我在尝试对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

09-30 09:04