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

CTE का उपयोग करके SQL कथन को सरल बनाएं

CROSS APPLY का इस्तेमाल करें , जिसका उपयोग उपनाम वाले क्षेत्रों को परिभाषित करने के लिए किया जा सकता है और फिर उन्हें संदर्भित किया जा सकता है:

SELECT A.a, 
       A.b, 
       B.c,
       CalculatedValue,
       B.d
FROM    
       dbo.TableA A 
INNER JOIN
        dbo.TableB B 
        ON (...)
CROSS APPLY 
        (SELECT (CASE WHEN ... THEN ... ELSE ... END)) CxA(CalculatedValue)
WHERE CalculatedValue BETWEEN @DayStart AND @DayEnd
GROUP BY A.a, CalculatedValue, B.c

CxA सिर्फ एक उपनाम है और आप इसे जो चाहें नाम दे सकते हैं।



  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. सी #/एसक्यूएल 2005 में बीएलओबी डेटा पढ़ने के लिए मेमोरी प्रभावी तरीका

  3. Mssql का उपयोग करके 'LIMIT' के पास गलत सिंटैक्स

  4. ट्रिगर जो सिर्फ डाली गई पंक्ति को अपडेट करता है

  5. थकाऊ या सीक्वेलाइज़ `findOne ()` . के लिए गलत सिंटैक्स का उपयोग करता है