0
我需要排序是这样的:
初步结果都是谁与CHA上启动,然后MAS,DIA,PLA,GOL,SIL,BROSQL的ORDER使用LIKE BY CASE
像这样:
1。 CHALLENGER我
2. CHALLENGER我
3. MASTER II
4. MASTER III
5. PLATINUM II
6. PLATINUM IV
7. PLATINUM V
等。
最重要的是只按名称排序,而不是在最后罗马数字,但如果这很容易,如果有人会显示出一种方式会很感激。
截至目前,这是我的SQL:
SELECT rank FROM table
ORDER BY
CASE rank
WHEN rank LIKE 'CHA%' THEN 1
WHEN rank LIKE 'MAS%' THEN 2
WHEN rank LIKE 'DIA%' THEN 3
WHEN rank LIKE 'PLA%' THEN 4
WHEN rank LIKE 'GOL%' THEN 5
WHEN rank LIKE 'SIL%' THEN 6
WHEN rank LIKE 'BRO%' THEN 7
WHEN rank LIKE 'Unranked' THEN 8
WHEN rank LIKE 'No Data' THEN 9
ELSE 10
END;
然而,这是行不通的。我正在使用MySQL数据库。任何帮助赞赏。
酷!所以在mysql中,'case'之后不需要任何东西? –
有两种方法可以使用CASE语句。一种方法是CASE WHEN <列内的值> ....或者您可以按照我在答案中所做的方式使用它。但是,当你使用LIKE时,你必须按照我在答案 –
中的方式使用它,非常感谢它! – Marcipanas