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