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

WHERE स्टेटमेंट को छोड़ना अगर उस स्टेटमेंट के लिए वेरिएबल शून्य है

अपने प्रश्न में इस साधारण मामले के लिए बस उपयोग करें

IF ( @place IS NULL )
  SELECT *
  FROM   table1
ELSE
  SELECT *
  FROM   table1
  WHERE  country = @place  

यदि आपकी वास्तविक स्थिति अधिक जटिल है तो आप इसका उपयोग कर सकते हैं

select * 
from Table1 
where @place is null or [email protected] 
option (recompile)

recompile . की आवश्यकता का कारण संकेत दोनों मामलों के लिए एक ही योजना के खानपान से बचने और एक स्पष्ट मूल्य की आपूर्ति करने की स्थिति में एक अनावश्यक स्कैन करने से बचने के लिए है।

ये और अन्य विकल्प जैसे कि क्वेरी को गतिशील रूप से उत्पन्न करना, लेख में विस्तार से चर्चा की गई है डायनामिक खोज टी-एसक्यूएल में स्थितियां



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SqlDataReader से डेटा पढ़ें

  2. SQL सर्वर में एक स्ट्रिंग से HTML टैग्स को कैसे स्ट्रिप करें?

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

  4. दूसरी तालिका में शामिल होने पर गलत योग

  5. SQL सर्वर (T-SQL) में एक स्ट्रिंग के मध्य में वर्ण सम्मिलित करें