यह मानते हुए कि आपके पास कोई नकारात्मक संख्या नहीं है, आपको अपने बीच के खंड के लिए 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 को डिफ़ॉल्ट के रूप में चुना है क्योंकि अगर यह संख्या के बीच में नंबर देने में सक्षम नहीं है तो क्लॉज को हमेशा गलत होना चाहिए।
(यह केवल इंट रेंज से कम संख्या के लिए जवाब देगा)