इसके बजाय आपको CAST
. का उपयोग करके इसे स्पष्ट रूप से कास्ट करने का प्रयास करना चाहिए या CONVERT
नीचे की तरह कार्य करें और निहित कास्टिंग पर भरोसा न करें।
SELECT * FROM test WHERE sample_col = cast('foo' as int);
(OR)
SELECT * FROM test WHERE cast(sample_col as varchar) = 'foo';
इसके अलावा, INT
. की तुलना करने का कोई मतलब नहीं है string
के साथ कॉलम टाइप करें value और AFAIK, निहित कास्टिंग को रोकने के लिए ऐसी कोई सेटिंग मौजूद नहीं है। यदि आप वास्तव में इसे 0 में परिवर्तित करने के बजाय त्रुटि में परिणाम देना चाहते हैं तो इसे स्पष्ट रूप से डालें; किस स्थिति में यह त्रुटिपूर्ण होगा।
देखें अभिव्यक्ति मूल्यांकन में रूपांतरण टाइप करें अधिक जानकारी के लिए।