2012-04-16 7 views
10

मैं रिपोर्ट बिल्डर 3.0 में एक रिपोर्ट के लिए पैरामीटर की एक सूची प्राप्त करने के लिए एक SQL क्वेरी लिख रहा हूं। मैं इस तरह के परिणामों के मूल्य 'सभी' के साथ एक अतिरिक्त पंक्ति जोड़ने के लिए की जरूरत:एक क्वेरी के पहले परिणाम (टी-एसक्यूएल) के रूप में एक विशिष्ट पंक्ति को कैसे बनाए रखें?

SELECT 'All' 
UNION 
SELECT DISTINCT Manager 
FROM    IS_Projects 

यह ठीक काम करता है, लेकिन क्वेरी मेरे लिए पंक्तियों रिटर्न वर्णमाला के क्रम में, जहां मैं वास्तव में चाहते हैं 'सभी' में सॉर्ट शीर्ष पर शीर्ष पर दिखाई देने के लिए (यानी पहली पंक्ति के रूप में वापस आना)। शेष परिणामों को वर्णानुक्रम में क्रमबद्ध किया जा सकता है।

मैंने टेबल पर सॉर्ट-ऑर्डर कॉलम जोड़ने पर सुझाव देखा है, लेकिन मैं SQL के लिए बहुत नया हूं, और यह नहीं जानता कि यह कैसे करें।

किसी भी सुझाव के लिए धन्यवाद!

+0

यह रिपोर्ट पर ही रहता है, इसलिए मैं वास्तव में इस तरह से टेबल को पॉप्युलेट नहीं कर रहा हूं। हालांकि सुझावों के लिए धन्यवाद! – confusedKid

+0

आह ... मैंने अपनी टिप्पणी हटा दी जब मैंने सवाल फिर से पढ़ लिया और महसूस किया कि यह एक रिपोर्ट के लिए था! इसके अलावा नीचे साफ जवाब भी देखा, और लगा कि मेरी टिप्पणी अब आवश्यक नहीं थी ... –

उत्तर

21

एक तरह से;

SELECT Name FROM (
    SELECT 'All'  as Name 
    UNION 
    SELECT DISTINCT Manager 
    FROM    IS_Projects 
) T 
ORDER BY CASE Name WHEN 'All' THEN 0 ELSE 1 END, Name 
+0

धन्यवाद, यह मेरे लिए काम किया। – confusedKid

+0

बहुत बढ़िया - पता नहीं था कि आप आदेश द्वारा ऑर्डर में केस स्टेटमेंट डाल सकते हैं। यह सिर्फ दरवाजे खोले। क्या यह काफी प्रदर्शनकारी है? – crush

+0

व्यक्तिगत रूप से मैं उपरोक्त जैसे मामूली मामला को मापने योग्य प्रभाव की अपेक्षा नहीं करता। –

3

यह एक तरीका है:

SELECT Manager 
FROM (SELECT 'All' Manager, 1 Order 
     UNION ALL 
     SELECT DISTINCT Manager, 2 Order 
     FROM IS_Projects) A 
ORDER BY Order, Manager 
संबंधित मुद्दे