如何选择可能具有前导零的非整数(varchar)?

时间:2018-09-28 13:53:55

标签: sql netezza aginity

我有一个表(我们称其为MYTABLE),在MYTABLE中,我有一个列identity_number,但是此数字存储为字符串(这样的话,我不能更改它,因为我不是该所有者)数据)。但是,有时这个数字在表中有一个前导零,有时没有(因为这个原因相同,所以我不能更改它)。因此,例如VARCHAR'123456'出现在identity_number列中,但是VARCHAR'0789123'也会出现在该列中。现在,我想从表中进行选择*,在该表中我不给where子句中的参数加上前导零,但我拖延了它希望它返回两个记录的过程。我该如何实现?

所以:

select * from MYTABLE
where identity_number in ('123456', '789123')

应返回两个记录:'123456'和'0789123'

2 个答案:

答案 0 :(得分:3)

尝试这样的事情:

SELECT *
FROM MYTABLE
WHERE TRIM(LEADING '0' FROM identity_number) IN ('123456', '789123')

答案 1 :(得分:1)

请尝试这个。但这在大表中可能会变慢。

select * from MYTABLE
where TRIM(LEADING '0' FROM identity_number) in ('123456', '789123')