在 Informix 中从数字转换为带有前导零的字符

Cast from numeric to char with leading zeros in Informix

我在尝试对 Informix 中的 SQL 查询进行转换时遇到问题。我有一个 table,其中包含我正在查询的名为 ponbr 的列。它的数据类型是CHAR(8).

这是我的查询,工作正常,returns 记录

select * from xxx_shp where '02573569' = ponbr

但是,如果我键入此查询,它 returns 什么都没有:

select * from xxx_shp where to_char(02573569) = ponbr

这也returns没什么:

select * from xxx_shp where ponbr = CAST (02573569 AS char(8))

我在这里做错了什么?

简单查看to_char(02573569)CAST (02573569 AS char(8))返回的结果,很可能是'2573569'

假设 Informix TO_CHAR 的工作方式与 Oracle 类似,您需要应用带前导零的格式:

where to_char(02573569, '00000000') = ponbr

我很确定你的问题是前导零。如果您知道 ponbr 是一个数字,那么将其作为一个数字进行比较:

where 02573569 = cast(ponbr as int)

否则,包括前导零:

where to_char(02573569, '&&&&&&&&') = ponbr