Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

फ़िल्टरिंग जॉइन:WHERE बनाम ON

लिंक @Gratzy प्रदान किया गया मददगार है

ON क्लॉज और WHERE क्लॉज में शर्तों के बीच का अंतर निश्चित रूप से एक ग्रे है।

इनर जॉइन के लिए वे समकक्ष हैं। OUTER JOINS के लिए, आपकी समझ सही है कि ON कंडीशन के मूल्यांकन के बाद WHERE क्लॉज को अवधारणात्मक रूप से लागू किया जाता है।

लेकिन कई मामलों में अंतर कार्यक्षमता की तुलना में इरादे से अधिक नीचे है। ON शर्तों और WHERE क्लॉज़ के बीच अक्सर अर्थ संबंधी अंतर होता है।

उदाहरण के लिए, SQL सर्वर के पुराने संस्करणों ने वास्तव में WHERE क्लॉज में शर्तों का उपयोग करके ON सिंटैक्स को लागू किया, एक *= को नियोजित किया। या =* बाएँ या दाएँ जुड़ने का संकेत देने के लिए वाक्य रचना (जिसके कारण कुछ मामलों में अजीब तरह से अलग-अलग परिणाम LEFT और RIGHT JOIN समकक्ष बनते हैं)

सामान्य तौर पर, मेरी सलाह हमेशा ON क्लॉज में उपयुक्त कुंजी फ़ील्ड का उपयोग रिकॉर्ड्स को एक-दूसरे के साथ जोड़ने के तर्क के आधार पर रिकॉर्ड में शामिल होने के लिए होती है। फ़िल्टरिंग शर्तों को लागू करने के लिए WHERE क्लॉज़ का उपयोग करें जो इस परिणाम सेट को उत्तरोत्तर प्रतिबंधित करते हैं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. HAS_DBACCESS () - पता लगाएं कि क्या कोई उपयोगकर्ता SQL सर्वर में किसी डेटाबेस तक पहुंच सकता है

  2. संकार्य प्रकार संघर्ष:int दिनांक के साथ असंगत है + INSERT कथन विदेशी कुंजी बाधा के साथ विरोध करता है

  3. 3/4 कैरेक्टर इंटीजर को 24 घंटे के टाइम फॉर्मेट में कैसे बदलें और तारीख के साथ मिलाएं?

  4. एक LIKE पैटर्न में एक या दो संख्याओं के साथ समाप्त होने वाले स्ट्रिंग्स का वर्णन कैसे करें?

  5. SQL सर्वर IF बनाम IIF ():क्या अंतर है?