作者:1157476701qq | 来源:互联网 | 2022-12-02 13:07
我想知道在SQL中是否可以以与列的标准字母数字排序不同的格式对查询结果进行排序.例如,考虑表"表",
样本表
以下脚本将按照"Color"列的字母顺序对表进行排序:
SELECT * FROM Table ORDER BY Color;
如何订购,以便颜色顺序是绿色,蓝色,红色?也就是说,我如何使用我定义的订单格式订购?
1> Arthur..:
使用MySQL时:
ORDER BY FIELD(Color,'GREEN','BLUE,'RED') ASC
文档:https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_field
注意如果第一个参数的值在后续参数中根本不存在,或者它为NULL,则FIELD(..)将计算为0.因此,如果任何这些情况属于可能性,那么您需要格外小心,否则这些将是最好的结果.在这种情况下,我个人反过来提供所需的订单并使用DESC,例如在您的情况下:
ORDER BY FIELD(Color,'RED','BLUE,'GREEN') DESC