मेरे पास निम्न क्वेरी है जो नीचे दिए गए डेटा का उत्पादन करती है। मैं केवल वर्णानुक्रम में उपयोगकर्ताओं की सूची दिखाना चाहता हूं और पहला रिकॉर्ड All , All होना चाहिए।

enter image description here

जिज्ञासा:

SELECT 'All' created_by,
       'All' Prepby
FROM dual
UNION ALL
SELECT DISTINCT
       to_char(d.created_by) AS created_by,
       get_user_name(d.created_by) Prepby
FROM Hpml_Gp_dtl d
WHERE d.created_by IS NOT NULL
ORDER BY 2;
0
Jam Eel Ahmed 4 अक्टूबर 2017, 15:40
यहाँ अधिकांश लोग स्वरूपित पाठ चाहते हैं, चित्र नहीं।
 – 
jarlh
4 अक्टूबर 2017, 15:46
यदि आप ड्रॉपडाउन सूची (जैसे) में डालने के लिए इस क्वेरी के परिणाम का उपयोग कर रहे हैं, तो आप डेटाबेस में इसे करने की कोशिश करने के बजाय कोड में सूची में "ऑल, ऑल" रिकॉर्ड जोड़ने से बेहतर होंगे।
 – 
Peter Abolins
4 अक्टूबर 2017, 15:49
चूंकि All वर्णानुक्रम में ABDUL के बाद है, तो आपको एक अलग ऑर्डर कुंजी की आवश्यकता है, है ना? क्या आप सोच सकते हैं कि आप ऐसा कैसे करेंगे? ऑर्डर करने के लिए आपको एक और कॉलम जोड़ना होगा, है ना?
 – 
Nick.McDermaid
4 अक्टूबर 2017, 16:04

2 जवाब

ORDER BY में CASE व्यंजक का प्रयोग करें।

क्वेरी

select t.* from (
    select 'All' created_by, 'All' Prepby
    from dual
    union all
    select distinct to_char(d.created_by) as created_by,
    get_user_name(d.created_by) Prepby
    from Hpml_Gp_dtl d
    where d.created_by is not null
) t
order by case Prepby when 'All' then 1 else 2 end, Prepby;
1
Ullas 4 अक्टूबर 2017, 15:53
मूल चयन को इनलाइन दृश्य में बदलने की आवश्यकता को इंगित करना उचित है। जब क्वेरी चुनिंदा बयानों का एक संघ है तो हम ऐसा किए बिना नाम से कॉलम का संदर्भ नहीं दे सकते।
 – 
APC
4 अक्टूबर 2017, 15:55

उप-क्वेरी में ORDER BY निष्पादित करें:

SELECT 'All' AS created_by,
       'All' AS Prepby
FROM   DUAL
UNION ALL
SELECT *
FROM   (
  SELECT DISTINCT
         to_char(created_by),
         get_user_name(created_by)
  FROM   Hpml_Gp_dtl
  WHERE  created_by IS NOT null
  ORDER BY 2
)
0
MT0 4 अक्टूबर 2017, 15:56