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

मेरा टी-एसक्यूएल बाएं क्यों काम नहीं कर रहा है?

इसका कारण यह है कि आप WHERE . में दायीं ओर की तालिका शामिल कर रहे हैं खंड। आपको इसे ON . पर ले जाना चाहिए LEFT JOIN . की शर्त :

Select    P.appId, S.stepId, S.section, P.start
From      #appSteps    S   With (NoLock)
Left Join #appProgress P   On  S.stepId = P.stepId 
                           And P.appId = 101
Where     S.section Is Not Null

ऐसा करने का कारण यह है कि WHERE खंड का मूल्यांकन बाद . किया जाता है LEFT JOIN , जो तब आपके NULL . को फ़िल्टर कर देता है LEFT JOIN . से परिणाम ।

LEFT JOIN . की दायीं ओर की तालिका सहित (या RIGHT JOIN . की बाईं ओर की टेबल ) WHERE . में क्लॉज प्रभावी रूप से OUTER JOIN को बदल देता है एक INNER JOIN . में ।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक स्ट्रिंग से केवल संख्याएँ प्राप्त करने की क्वेरी

  2. Sql Server 2008 का उपयोग करके तालिका से शीर्ष 1000 पंक्तियों को कैसे हटाएं?

  3. तालिका बनाएं यदि SQL सर्वर में समकक्ष मौजूद नहीं है

  4. SQL सर्वर 2008 Windows प्रामाणिक लॉगिन त्रुटि:लॉगिन एक अविश्वसनीय डोमेन से है

  5. क्या आपके पास SQL ​​​​में यदि-तब-तर्क तर्क हो सकता है?