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



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

所以:

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

应返回两条记录:"123456"和"0789123">

尝试这样的事情:

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

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

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

相关内容

  • 没有找到相关文章

最新更新