Ако приемем, че няма да имате НИКАКВО ОТРИЦАТЕЛНО ЧИСЛО, трябва да прехвърлите nvarchar към Int за клаузата между и да зададете стойност по подразбиране за случая, когато не може да се преведе, както е показано по-долу:
SELECT *
From Vendor_Value_Table
WHERE (Vendor_Value_Table.Feature_ID in (17,19))
AND(
value_text like 'Dhol Wala$Shahnai Wala'
OR
(SELECT CASE WHEN ISNUMERIC(value_text) = 1 THEN CAST(value_text AS INT) ELSE -1 END) between 0 and 100
)
Избрахме -1 по подразбиране, тъй като ако не може да номерира, клаузата между винаги трябва да е false.
(ЩЕ ОТГОВОРЯВА САМО ЗА ЧИСЛАТА ПО-МАЛКИ ОТ INT RANGE)