如何 select 可能有前导零的非整数(varchars)?
How to select non-integers (varchars) that possibly have leading zeros?
我有一个 table(我们称它为 MYTABLE),在 MYTABLE 中我有一个列 identity_number,但是这个数字存储为一个字符串(就是这样,我不能改变这个,因为我不是数据的所有者)。但是,有时这个数字在 table 中有一个前导零,有时则没有(对于相同的帐户,我无法更改它)。因此,例如 VARCHAR '123456' 出现在 identity_number 列中,但 VARCHAR '0789123' 也出现在该列中。现在我想在我的 table 上做一个 select * ,其中我没有在 where 子句中为我的论点提供前导零,但我希望它同时成为 return记录。我怎样才能做到这一点?
所以:
select * from MYTABLE
where identity_number in ('123456', '789123')
应该return记录:“123456”和“0789123”
尝试这样的事情:
SELECT *
FROM MYTABLE
WHERE TRIM(LEADING '0' FROM identity_number) IN ('123456', '789123')
请试试这个。但这在大型 table 中可能会变慢。
select * from MYTABLE
where TRIM(LEADING '0' FROM identity_number) in ('123456', '789123')
我有一个 table(我们称它为 MYTABLE),在 MYTABLE 中我有一个列 identity_number,但是这个数字存储为一个字符串(就是这样,我不能改变这个,因为我不是数据的所有者)。但是,有时这个数字在 table 中有一个前导零,有时则没有(对于相同的帐户,我无法更改它)。因此,例如 VARCHAR '123456' 出现在 identity_number 列中,但 VARCHAR '0789123' 也出现在该列中。现在我想在我的 table 上做一个 select * ,其中我没有在 where 子句中为我的论点提供前导零,但我希望它同时成为 return记录。我怎样才能做到这一点?
所以:
select * from MYTABLE
where identity_number in ('123456', '789123')
应该return记录:“123456”和“0789123”
尝试这样的事情:
SELECT *
FROM MYTABLE
WHERE TRIM(LEADING '0' FROM identity_number) IN ('123456', '789123')
请试试这个。但这在大型 table 中可能会变慢。
select * from MYTABLE
where TRIM(LEADING '0' FROM identity_number) in ('123456', '789123')