У меня есть таблица:
Account_Code | Desc
503100 | account xxx
503103 | account xxx
503104 | account xxx
503102A | account xxx
503110B | account xxx
Где Account_Code
есть varchar
.
Когда я создаю запрос ниже:
Select
cast(account_code as numeric(20,0)) as account_code,
descr
from account
where isnumeric(account_code) = 1
Он хорошо работает, возвращая всю запись, которая имеет действительное числовое значение в столбце Account_Code
.
Но когда я пытаюсь добавить другой select, вложенный в предыдущий sql:
select account_code,descr
from
(
Select cast(account_code as numeric(20, 0)) as account_code,descr
from account
where isnumeric(account_code) = 1
) a
WHERE account_code between 503100 and 503105
запрос вернет ошибку
Ошибка преобразования типа данных varchar в числовой.
Что там происходит?
Я уже преобразовал в числовое, если Account_Code
допустимо, но кажется, что запрос все еще пытается обработать недействительную запись.
Мне нужно использовать предложение BETWEEN
в моем запросе.