0

我有一个表(我们称之为 MYTABLE),在 MYTABLE 中我有一个列 identity_number,但是这个数字存储为一个字符串(就是这样,我无法更改它,因为我不是数据的所有者) . 但是,有时这个数字在表中具有前导零,有时没有(对于这个帐户相同,我无法更改)。因此,例如 VARCHAR '123456' 出现在 identity_number 列中,但 VARCHAR '0789123' 也确实出现在列中。现在我想在我的表上执行一个 select * from ,其中我没有在 where 子句中给我的参数提供前导零,但我停止希望它返回两个记录。我怎样才能做到这一点?

所以:

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

应该返回两条记录:“123456”和“0789123”

4

2 回答 2

3

尝试这样的事情:

SELECT *
FROM MYTABLE
WHERE TRIM(LEADING '0' FROM identity_number) IN ('123456', '789123')
于 2018-09-28T14:07:25.177 回答
1

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

select * from MYTABLE
where TRIM(LEADING '0' FROM identity_number) in ('123456', '789123')
于 2018-09-28T14:09:01.307 回答