Проверить, является ли поле числовым, затем выполнить сравнение только для этих полей в одном операторе?

Это может быть просто, но я не обладаю знаниями в SQL, поэтому теряюсь. Я понимаю, что sql принимает ваш запрос и выполняет его в определенном порядке, поэтому я считаю, что этот запрос не работает:

select * from purchaseorders
where IsNumeric(purchase_order_number) = 1
and cast(purchase_order_number as int) >= 7

Большинство из полей towar_order_number являются числовыми, но недавно мы представили буквенно-цифровые поля. Данные, которые я пытаюсь получить, это увидеть, если '7' больше, чем самый высокий числовой номер покупки.

Функция Numeric () отлично отфильтровывает буквенно-цифровые поля, но при последующем сравнении приведений выдает эту ошибку:

Conversion failed when converting the nvarchar value '124-4356AB' to data type int.

Я не спрашиваю, что означает ошибка, это очевидно. Я спрашиваю, есть ли способ выполнить то, что я хочу, в одном запросе, предпочтительно в предложении where из-за ограничений ORM.

Ответы на вопрос(3)

Ваш ответ на вопрос