Ошибка преобразования указывает на то, что некоторые значения в столбце telnumber не отформатированы как допустимое целое число, и поэтому вызывают ошибку, которую вы видите при попытке преобразования.
Во втором запросе перечислены дополнительные значения, поскольку «123» находится между «10» и «20» при сравнении в виде строк.
Если вы хотите ограничить его 4-значными числами, вы можете использовать:
SELECT telnumber
FROM numbers n
WHERE n.telnumber BETWEEN '1234' AND '9999'
AND LENGTH(n.telnumber) = 4
Это все равно будет включать '1AA2' в наборе результатов.
Полная поддержка регулярных выражений (например, PCRE) не входит в стандартную комплектацию IDS - к сожалению. Однако нестандартный оператор MATCHES позволит вам сделать это:
SELECT telnumber
FROM numbers n
WHERE n.telnumber BETWEEN '1234' AND '9999'
AND LENGTH(n.telnumber) = 4
AND n.telnumber MATCHES '[0-9][0-9][0-9][0-9]'
Это простое регулярное выражение - но «*» - это стиль оболочки, «любой последовательности из нуля или более символов», а не «Клини Стар» «ноль или более повторений предыдущего символа».