按表中的多个列值排序

乌尼克里希南

我有以下格式的装运表:

运输 来源 目的地
装运 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章