搜索

...by排序问题 数据库中有一priority字段,取值为高、中、低。

发布网友 发布时间:2024-10-23 02:31

我来回答

2个回答

热心网友 时间:1天前

这个无法出现正常的排序。在SQL中对于字符或是汉字的排序依据是汉字字母按英文排序的方式。也就是说如果在没有更改的情况下,select * from table order by priority [ASC]顺序应该是低(D),高(G),中(Z)的顺序进行排列的。而若是select * from table order by priority DESC(降序)时与ASC正好相反。高中低的顺序是我们理解的,而不是计算机所能理解的,所有字符对于计算机来说都是没有意义的,所以在不更改的前提下是没有办法让计算机理解高中低的含义并让他排序的。

但数据库一般的排序有三种手段,第一种就是默认,已经介绍过了,另两种是笔画排序和ASC码序(机器码序)笔划排序对于汉字来说还可以确认,但是对于机器码序有很大的不可预知性,我们不可能也记不信每一个汉字的机器码的,所以如果你能恰好得出低中高的顺序,那么现在不是前两种顺序就有可能是后一种顺序,只要使用DESC就可以降序排列了!

热心网友 时间:1天前

可以这样写
select *,case priority
when '低' then 1
when '中' then 2
when '高' then 3
end fa
from table1 order by fa desc
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top