我有以下格式的装运表:
运输 | 来源 | 目的地 |
---|---|---|
装运 1 | 西班牙 | 法国 |
装运 2 | 落在 | 德国 |
装运 3 | 荷兰 | 瑞典 |
装运 4 | 芬兰 | 法国 |
装运 6 | 落在 | 比利时 |
装运 7 | 落在 | 法国 |
装运 8 | 德国 | 法国 |
装运 9 | 落在 | 法国 |
装运 10 | 落在 | 法国 |
装运 11 | 德国 | 法国 |
我如何对上表进行排序,首先出现所有德国到法国,然后是兰登到法国,然后是兰登到德国,然后是剩余的货物。
运输 | 来源 | 目的地 |
---|---|---|
装运 11 | 德国 | 法国 |
装运 8 | 德国 | 法国 |
装运 7 | 落在 | 法国 |
装运 9 | 落在 | 法国 |
装运 10 | 落在 | 法国 |
装运 2 | 落在 | 德国 |
装运 1 | 西班牙 | 法国 |
装运 3 | 荷兰 | 瑞典 |
装运 4 | 芬兰 | 法国 |
装运 6 | 落在 | 比利时 |
谢谢您的帮助!
正如评论中已经建议的那样,这是在子句中使用CASE
语句的想法:ORDER BY
SELECT
*
FROM
Shipments
ORDER BY
CASE WHEN `Source` = 'Germany' AND `Destination` = 'France' THEN 1
WHEN `Source` = 'Landon' AND `Destination` = 'France' THEN 2
WHEN `Source` = 'Landon' AND `Destination` = 'Germany' THEN 3
ELSE 4
END
这也是一个小提琴:https ://www.db-fiddle.com/f/58b3pWrUAeobtNd7yyUwwq/0 。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句