背景:展示排名时需要1,2,3,4,5,这样展示但是有些没有排名得数据字段默认值时0,这时直接用ASC就会出现问题
实现效果

实现方式:使用MySQL的ORDER BY语句来实现。以下是一个示例的SQL查询语句
SELECT * FROM table_name
ORDER BY CASE WHEN column_name = 0 THEN 1 ELSE 0 END, column_name ASC;
在上述示例中,table_name是表名,column_name是要排序的列名。
解释一下SQL语句的含义:
CASE WHEN column_name = 0 THEN 1 ELSE 0 END:这是一个条件表达式,当column_name的值为0时,返回1;否则,返回0。这样就将0的值标记为1,其他值标记为0。
ORDER BY CASE WHEN column_name = 0 THEN 1 ELSE 0 END, column_name ASC:这是排序的部分。首先按照前面条件表达式的结果排序,即将0排到最后。然后再按照column_name的升序排序。
通过以上的SQL查询语句,可以实现将0排到最后,并让其他值按照正序展示的效果。你可以在TP5的查询构造器中使用类似的语法来实现相同的效果。














![[管理与领导-52]:IT基层管理者 - 8项核心技能 - 7 - 决策](https://img-blog.csdnimg.cn/img_convert/f1b7ae8168218cb0e9b11d6fa23f2fd5.jpeg)




