मैं ORDER BY ASC का उपयोग करके तालिका stats तालिका में एक कॉलम ऑर्डर करना चाहता हूं। मैं चाहता हूं कि एसक्यूएल एस को ए से बड़ा होने के रूप में पहचाने। क्या मूल्यों को फिर से असाइन करने का कोई तरीका है? मैं नीचे दिए गए कोड को प्रिंट करना चाहता हूं: "एस, ए, ए, बी", ताकि एस> ए लेकिन बाकी वर्णानुक्रम में हो। एसक्यूएल के लिए नया और धन्यवाद। संपादित करें: क्षमा करें, लेकिन मैं यह शामिल करना भूल गया कि मैंने इसके माध्यम से व्यवस्थित करने का प्रयास किया: SELECT rarity FROM stats ORDER BY rarity ASC;

CREATE TABLE stats (
    _name VARCHAR(50) NOT NULL,
    refreshingness INT UNSIGNED NOT NULL,
    flavor INT UNSIGNED NOT NULL,
    chuggability INT UNSIGNED NOT NULL,
    rarity VARCHAR(1)CHARACTER SET LATIN1 NOT NULL,
    PRIMARY KEY (_name)
);
SELECT rarity FROM stats
ORDER BY rarity ASC;

INSERT INTO stats(_name,refreshingness,flavor,chuggability,rarity)
VALUES("Southern Style Sweet Tea",2,3,3,"S");

INSERT INTO stats(_name,refreshingness,flavor,chuggability,rarity)
VALUES("Raspberry",4,3,4,"A");

INSERT INTO stats(_name,refreshingness,flavor,chuggability,rarity)
VALUES("Iced Tea with Gingseng Zero",4,3,4,"A");

INSERT INTO stats(_name,refreshingness,flavor,chuggability,rarity)
VALUES("Half & Half Pink Tea Lemonade",2,2,2,"B");
0
Sebastian Przybylski 10 अक्टूबर 2019, 04:23
और आप क्या आदेश चाहते हैं?
 – 
Gordon Linoff
10 अक्टूबर 2019, 04:24
मैं इसे "एस, ए, ए, बी" के रूप में प्रदर्शित करना चाहता हूं। यह S से शुरू होता है और फिर सूची का शेष भाग वर्णानुक्रम में होता है।
 – 
Sebastian Przybylski
10 अक्टूबर 2019, 04:25

2 जवाब

सबसे बढ़िया उत्तर

मुझे समझ नहीं आ रहा है। 'S' > 'A' -- वर्णमाला के किसी भी उचित एन्कोडिंग में। मान लें कि आपका मतलब rarity के मान से है, तो यह वही करता है जो आप कहते हैं:

order by rarity desc

'S' पहले होना चाहिए। मुझे एक छलांग लगाने दें, और मान लें कि आप पहले 'S' के साथ आरोही सॉर्ट करना चाहते हैं। उस स्तिथि में:

order by (rarity = 'S') desc,   -- put 'S' first
         rarity asc
0
Gordon Linoff 10 अक्टूबर 2019, 04:25

ये रही आपकी क्वेरी। आप अपने order by नंबर पर case का इस्तेमाल कर सकते हैं, क्योंकि नंबर हमेशा पहले आता है।

SELECT * FROM stats ORDER BY 
    CASE WHEN rarity = 'S' THEN 1 
    ELSE rarity END

देखें dbfiddle

1
Ed Bangga 10 अक्टूबर 2019, 04:52