我需要这样分类:
第一个结果是所有从CHA开始的人,然后是MAS,DIA,PLA,GOL,SIL,BRO。
如下所示:
最重要的是只按名字排序,而不是最后的罗马数字,但是,如果这很容易的话,如果有人愿意展示一种方式的话,那将是值得赞赏的。
到目前为止,这是我的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数据库。任何帮助都很感激。
发布于 2016-02-03 19:22:24
你所拥有的是:
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;你想做的是:
SELECT [rank] FROM table
ORDER BY
CASE
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;https://stackoverflow.com/questions/35185717
复制相似问题