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

SQL सर्वर 2008, एक क्वेरी के साथ अलग WHERE क्लॉज

आपको ऐसा करने की ज़रूरत नहीं है, आप कुछ ऐसा करके इससे निजात पा सकते हैं

SELECT  *
FROM    [Query]
WHERE   (@Parameter = 1 AND Column1 = 8)
OR      (@Parameter = 2 AND Column2 = 8)
OR      (@Parameter = 3 AND Column3 = 8)

हालाँकि, सिर्फ इसलिए कि आप कुछ कर सकते हैं, इसका मतलब यह नहीं है कि आपको करना चाहिए। कम वर्बोज़ SQL का मतलब बेहतर प्रदर्शन नहीं है, इसलिए कुछ इस तरह का उपयोग करना:

IF @Parameter = 1
    BEGIN
        SELECT  *
        FROM    [Query]
        WHERE   Column1 = 8
    END
ELSE IF @Parameter = 2
    BEGIN
        SELECT  *
        FROM    [Query]
        WHERE   Column2 = 8
    END
ELSE IF @Parameter = 3
    BEGIN
        SELECT  *
        FROM    [Query]
        WHERE   Column3 = 8
    END

जबकि पहली क्वेरी के समकक्ष बेहतर प्रदर्शन में परिणाम होना चाहिए क्योंकि इसे बेहतर तरीके से अनुकूलित किया जाएगा।



  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 सर्वर में "तिथि int के साथ असंगत है" को ठीक करें

  2. एंटिटी फ्रेमवर्क क्वेरी में डेटटाइम को टाइमस्पेन में कैसे बदलें?

  3. SQL सर्वर - डेटा को लॉक किए बिना बड़ी तालिकाओं को मर्ज करना

  4. ADO.NET कॉलिंग T-SQL संग्रहीत कार्यविधि एक SqlTimeoutException का कारण बनती है

  5. pyodbc.connect() काम करता है, लेकिन sqlalchemy.create_engine().connect() नहीं