यदि आप 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
)।