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

एक एकल एसक्यूएल क्वेरी जो एसक्यूएल सर्वर में शून्य या मूल्यवान दिनांक सीमा दोनों को संभाल सकती है

WITH    limits AS
        (
        SELECT  COALESCE(@startDate, MIN(mydate)) AS startDate, COALESCE(@endDate, MAX(mydate)) AS endDate
        FROM    mytable
        )
SELECT  m.*
FROM    limits
JOIN    mytable m
ON      mydate BETWEEN startDate AND endDate

यदि mydate . पर कोई अनुक्रमणिका है, तो यह सबसे कुशल होगा , चूंकि यह स्थिति सरल है और एक Index Seek . का उपयोग करेगी ।

यदि कोई अनुक्रमणिका नहीं है, तो IFNULL use का उपयोग करें दूसरों द्वारा प्रस्तावित निर्माण।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर रिपोर्टिंग सेवा रिपोर्ट में वैकल्पिक पंक्ति रंग जोड़ें

  2. एसक्यूएल:सबसे हालिया अनुक्रमिक रूप से विशिष्ट मूल्य w/ग्रुपिंग का चयन करें

  3. dbo.sysobjects को क्वेरी करने की अनुमति

  4. Microsoft SQL सर्वर में एक दिनांक स्वरूप से दूसरे में कैसे परिवर्तित करें?

  5. दो दशमलव स्थानों के साथ एक संख्या लिखें SQL सर्वर