Как выбрать нецелые числа (varchars), которые могут иметь начальные нули? - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть таблица (назовем ее MYTABLE), и в MYTABLE у меня есть столбец identity_number, но это число хранится в виде строки (так оно и есть, я не могу изменить это, потому что я не являюсь владельцемданные).Однако иногда это число имеет ведущий ноль в таблице, а иногда нет (для этого счета то же самое, я не могу изменить это).Так, например, VARCHAR '123456' встречается в столбце identity_number, но VARCHAR '0789123' также встречается в столбце.Теперь я хочу сделать select * from в моей таблице, в которой я не даю начальный ноль моему аргументу в предложении where, но я хочу, чтобы он возвращал обе записи.Как я могу добиться этого?

Итак:

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

должен вернуть обе записи: '123456' и '0789123'

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Пожалуйста, попробуйте это.Но это может замедлиться в большом столе.

select * from MYTABLE
where TRIM(LEADING '0' FROM identity_number) in ('123456', '789123')
0 голосов
/ 28 сентября 2018

Попробуйте что-то вроде этого:

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