我有一张table,上面有我的员工信息。我想按他们的排名排序,不遵循ascii或字母顺序。例如,so代表高级军官,aso代表助理高级军官,o代表军官。我想按如下顺序排序:so->aso->o。我想知道我有没有办法做到这一点。感谢您的帮助。
wpcxdonn1#
可以在中使用条件表达式 order by . 例如:
order by
order by switch(rank = "SO", 1, rank = "ASO", 2, rank = "O", 3, 1=1, 4)
或使用嵌套 iif() :
iif()
order by iif(rank = "SO", 1 iif(rank = "ASO", 2, iif(rank = "O", 3, 4) ) )
或者,使用带有排序值的引用表并将其联接:
select t.* from t inner join ranks as r on r.rank = t.rank order by r.ord;
1条答案
按热度按时间wpcxdonn1#
可以在中使用条件表达式
order by
. 例如:或使用嵌套
iif()
:或者,使用带有排序值的引用表并将其联接: