इस टिप्पणी अनुभाग को ब्राउज़ करते हुए मैं प्रश्न का उत्तर देने वाले दो अलग-अलग पैटर्न के पार आया। अफसोस की बात है कि एसक्यूएल 2012 के लिए, दूसरा पैटर्न काम नहीं करता है, इसलिए यहां मेरा "आसपास काम" है
ऑर्डर ऑन कॉमन कॉलम
यह सबसे आसान मामला है जिससे आप मुठभेड़ कर सकते हैं। जैसे कई उपयोगकर्ता बताते हैं, आपको वास्तव Order By
में क्वेरी के अंत में जोड़ने की आवश्यकता है
SELECT a FROM table1
UNION
SELECT a FROM table2
ORDER BY field1
या
SELECT a FROM table1 ORDER BY field1
UNION
SELECT a FROM table2 ORDER BY field1
अलग कॉलम पर आदेश
यहाँ है जहाँ यह वास्तव में मुश्किल हो जाता है। SQL 2012 का उपयोग करते हुए, मैंने शीर्ष पद की कोशिश की और यह काम नहीं करता है।
SELECT * FROM
(
SELECT table1.field1 FROM table1 ORDER BY table1.field1
) DUMMY_ALIAS1
UNION ALL
SELECT * FROM
(
SELECT table2.field1 FROM table2 ORDER BY table2.field1
) DUMMY_ALIAS2
टिप्पणी में सिफारिश के बाद मैंने यह कोशिश की
SELECT * FROM
(
SELECT TOP 100 PERCENT table1.field1 FROM table1 ORDER BY table1.field1
) DUMMY_ALIAS1
UNION ALL
SELECT * FROM
(
SELECT TOP 100 PERCENT table2.field1 FROM table2 ORDER BY table2.field1
) DUMMY_ALIAS2
इस कोड को संकलित लेकिन था DUMMY_ALIAS1
और DUMMY_ALIAS2
ओवरराइड Order By
में स्थापित किया गया Select
बयान जो इस व्यर्थ बनाता है।
एकमात्र उपाय जो मैं सोच सकता था, मेरे लिए काम करने वाला संघ का उपयोग नहीं कर रहा था और इसके बजाय प्रश्नों को व्यक्तिगत रूप से चला रहा था और फिर उनके साथ काम कर रहा था। इसलिए मूल रूप से, Union
जब आप चाहें का उपयोग नहीं कर रहे हैंOrder By