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