首页 > 解决方案 > 如何选择可能有前导零的非整数(varchars)?

问题描述

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

所以:

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

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

标签: sqlnetezzaaginity

解决方案


尝试这样的事情:

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

推荐阅读