स्टेटमेंट तर्क मुद्दे द्वारा एसक्यूएल आदेश

मेरे पास स्टूयर, नाम, शामिल और% 3 + स्तर का परिणाम है और मैं आदेश देने की कोशिश कर रहा हूं ताकि परिणाम सेट अंग्रेजी, गणित और फिर अन्य सभी विषयों को वर्णानुक्रम में प्रदर्शित कर सकें। प्रत्येक विषय बारी बारी से समूह समूह क्रम में क्रमबद्ध है।

यह मेरा कोड है:

ORDER BY CASE NAME 
      WHEN 'English' THEN 0 
      WHEN 'Mathematics' THEN 1 
            ELSE 2 END, 
Stuyear DESC

जिसके परिणामस्वरूप इसका परिणाम होता है:

enter image description here

तो इस तरह का प्रारंभिक भाग उम्मीद के रूप में काम कर रहा है, लेकिन फिर अंग्रेजी और गणित के बाद के विषयों को क्रमबद्ध नहीं करते हैं क्योंकि मुझे उनकी आवश्यकता होती है। उदाहरण के लिए:

Stuyear    name
11         English
10         English
9          English
11         Mathematics
10         Mathematics
9          Mathematics
11         Art & Design
10         Art & Design
9          Art & Design
...
2

1 उत्तर

यह होना चाहिए:

ORDER BY CASE NAME 
  WHEN 'English' THEN 0 
  WHEN 'Mathematics' THEN 1 
        ELSE 2 END, 
  NAME,
  Stuyear DESC

आपके मामले में आप इसे 'ऑर्डर द्वारा' नाम केवल अंग्रेजी और गणित में बता रहे थे, और इसके बाद स्टूयर द्वारा।

अन्य सभी "नाम" के लिए 2 <�कोड> ऑर्डर द्वारा क्लॉज के लिए 2 होगा, और केवल एक चीज जिसे आप बता रहे थे उसे स्ट्यूयर द्वारा ऑर्डर करना था। इस तरह यह नहीं जानता कि उनको कैसे क्रमबद्ध किया जाए।

मामले के बाद नाम कॉलम डालकर यह आपको वही करेगा जो आप उम्मीद करते हैं।

8
जोड़ा