負の数がないと仮定すると、 between 句の 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 をデフォルトとして選択しました。これは、キャストできない場合に between 句を常に false にする必要があるためです。
(INT 範囲未満の数値に対してのみ応答します)