SQL 查询按模式排序

Ank*_*ita 0 mysql sql database case sql-order-by

我正在使用这个特定的例子

https://www.w3schools.com/sql/sql_orderby.asp

我想获取按国家/地区模式排序的客户列表。

例如,Country以 开头的国家/As地区应在数字上排在第一位,然后是以 开头的国家/地区Ge,最后是以 开头的国家/地区Fr

如果我需要在该国家/地区使用 1 种模式搜索进行订购,我可以使用以下代码来实现:

SELECT * FROM Customers
ORDER BY (CASE WHEN Country LIKE 'Fr%' THEN 0
ELSE 1
END)ASC;
Run Code Online (Sandbox Code Playgroud)

如何在该ORDER BY条款中再添加 2 个条件?谢谢。

Aym*_*Dev 5

您可以通过每次增加数字来CASE为附加“条件”添加多个:

SELECT * FROM Customers
ORDER BY (CASE
    WHEN Country LIKE 'As%' THEN 0
    WHEN Country LIKE 'Ge%' THEN 1
    WHEN Country LIKE 'Fr%' THEN 2
    ELSE 3
END) ASC;
Run Code Online (Sandbox Code Playgroud)