我需要这样排序:
首先是所有以CHA开始的结果,然后是MAS,DIA,PLA,GOL,SIL,BRO
像这样:
1.挑战我
2.挑战我
3. MASTER II
4. MASTER III
5. PLATINUM II
6.铂金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数据库。任何帮助表示赞赏。
答案 0 :(得分:1)
你拥有的是:
vqadd.u64 d1, d1, d2
你想要做的是:
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;