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

यदि स्टेटमेंट में UNION, INTERSECT या EXCEPT ऑपरेटर (SQL सर्वर) शामिल है, तो ORDER BY आइटम्स को चुनिंदा सूची में दिखाई देना चाहिए।

यदि आप SQL सर्वर में कोई क्वेरी चला रहे हैं, और आपको निम्न त्रुटि मिलती है…

Msg 104, Level 16, State 1, Line 8
ORDER BY items must appear in the select list if the statement contains a UNION, INTERSECT or EXCEPT operator.

…आपको अपने SQL स्टेटमेंट की जांच करनी चाहिए – आपने शायद अपने SELECT . से एक कॉलम छोड़ दिया है सूची।

जैसा कि त्रुटि संदेश का तात्पर्य है, आपको शायद यह त्रुटि केवल तभी दिखाई देगी जब आप एक क्वेरी चला रहे हों जिसमें एक UNION हो , INTERSECT या EXCEPT ऑपरेटर।

बस अपने SELECT . में कॉलम जोड़ना सूची को समस्या का समाधान करना चाहिए।

उदाहरण

त्रुटि उत्पन्न करने का एक उदाहरण यहां दिया गया है।

SELECT 
    CatName
FROM Cats
UNION ALL
SELECT 
    DogName 
FROM Dogs
ORDER BY CatId;

परिणाम:

Msg 104, Level 16, State 1, Line 8
ORDER BY items must appear in the select list if the statement contains a UNION, INTERSECT or EXCEPT operator.

यहाँ समस्या यह है कि मैं CatId . द्वारा ऑर्डर करने का प्रयास कर रहा हूँ कॉलम, लेकिन मैं वास्तव में अपने SELECT . में उस कॉलम का चयन नहीं कर रहा हूं सूची।

इसे ठीक करने का सबसे आसान तरीका यह है कि उस कॉलम को मेरे SELECT . में जोड़ दिया जाए सूची।

SELECT 
    CatId AS PetID,
    CatName AS PetName
FROM Cats
UNION ALL
SELECT 
    DogId AS PetID,
    DogName AS PetName
FROM Dogs
ORDER BY PetId;

परिणाम:

+---------+-----------+
| PetID   | PetName   |
|---------+-----------|
| 1       | Brush     |
| 1       | Yelp      |
| 2       | Scarcat   |
| 2       | Woofer    |
| 3       | Flutter   |
+---------+-----------+

दरअसल, मेरे मामले में मैं अलग-अलग नामों वाले कॉलम चुन रहा हूं (CatId बनाम DogId , CatName बनाम DogName ), इसलिए मैंने उन स्तंभों के लिए एक उपनाम का उपयोग करने का निर्णय लिया (PetId और PetName ) इस मामले में, मैं ORDER BY कर सकता हूं उपनाम का नाम (PetId )।


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

  2. @@ ROWCOUNT - SQL सर्वर में अंतिम कथन से प्रभावित पंक्तियों की संख्या प्राप्त करें

  3. SQL सर्वर 2008:मैं उपयोगकर्ता नाम को विशेषाधिकार कैसे प्रदान करूं?

  4. दो ज्ञात स्ट्रिंग्स के बीच एक स्ट्रिंग का चयन करने के लिए एक SQL क्वेरी

  5. SQL सर्वर में निर्भरता खोजें:sql_expression_dependencies