sql server - Using nullable columns in a WHERE clause -
एसक्यूएल सर्वर में टेबल परिभाषा को निम्नानुसार मान लें:
बनाएँ तालिका MyTable (ID UNIQUEIDENTIFIER NULL, जानकारी VARCHAR (MAX))
और एक क्वेरी:
रद्द करें @ आईडी अन्वेषीएनिटीफ़ीर घोषणा @ जानकारी VARCHAR (मैक्स) अगर @ आईडी नहीं है उस स्थिति में, दृश्य स्टूडियो स्टैटिक कोड विश्लेषक निम्न त्रुटि उत्पन्न करता है:
चेतावनी: एसआर 0007: माइक्रोसॉफ्ट। प्रदर्शन: नल योग्य कॉलम अंतिम परिणाम को असमान के रूप में मूल्यांकन के रूप में मूल्यांकन कर सकते हैं।
मुझे यहां समस्या दिखाई नहीं दे रही है त्रुटि प्रदर्शन से संबंधित है; एमएसडीएन का कहना है कि मुझे ISNULL () का उपयोग करना चाहिए - लेकिन शून्य के साथ तुलना में एक बराबर की तुलना हमेशा सही है, सही है? क्या मुझे कुछ याद आ रहा है, या क्या चेतावनी सिर्फ गलत है?
मुझे लगता है कि यह WHERE खंड की बात कर रहा है यह कह रहा है कि आपके दोनों पैरामीटर और आपके कॉलम शून्य हो सकते हैं, इस स्थिति में आपके WHERE क्लॉज अब सही / गलत के लिए मूल्यांकन नहीं करता है अपने नलएबल कॉलम को एक में फ़नल करके जो कि हमेशा एक मान परिभाषित किया गया है (ISNULL के माध्यम से), आप बेहतर आकार, तर्कशास्त्र के अनुसार हैं।
एक तरफ, NULLs ने माना जाता है कि स्कोअर धीमा करने के लिए प्रश्न करता है।
Comments
Post a Comment