В качестве стандартного принципа (ИМХО) проект базы данных должен использовать числовой тип в том и только в том случае, если поле имеет вид:
- Число, на котором вы могли бы разумно выполнять математику
- Код ссылки в базе данных - ключи и т. Д.
Если это число в каком-то другом контексте - номера телефонов, IP-адреса и т. Д. - сохраните его в виде текста.
Мне кажется, что ваш '123' концептуально является строкой, которая, как оказалось, содержит только цифры, поэтому, если возможно, я бы предложил изменить дизайн, чтобы он сохранялся как таковой.
В противном случае, я не вижу разумного способа сделать сравнение, используя его в качестве чисел, поэтому вам нужно преобразовать его в строки на лету с помощью чего-то вроде
SELECT * FROM Table WHERE CheckVar LIKE '''' + to_char(<num>,'999') + '%'