特定顺序(sql)

特定顺序(sql),sql,ruby-on-rails,ruby,Sql,Ruby On Rails,Ruby,我有一个模型学生,它有字段分数。我需要列出一个奇怪的规则:按分数排序(DESC),但是(!)所有超过100的分数都应该排序为零: Pupil.all( :order => 'score DESC' ...?) 100 86 34 21 6 3 1 0 143 125 354 0 456 0 0 我可以用ruby订购,但我需要sql 我还可以在db中创建额外的字段来存储数据,如 new_score=score>100?0:分数 但是我认为我们可以在没有它的情况下生成sql,你可以按“分数>

我有一个模型
学生
,它有字段
分数
。我需要列出一个奇怪的规则:按分数排序(DESC),但是(!)所有超过100的分数都应该排序为零:

Pupil.all( :order => 'score DESC' ...?)
100
86
34
21
6
3
1
0
143
125
354
0
456
0
0
我可以用ruby订购,但我需要sql

我还可以在db中创建额外的字段来存储数据,如
new_score=score>100?0:分数


但是我认为我们可以在没有它的情况下生成sql,你可以按“分数>100”(按布尔值排序),然后按分数排序。分数>100的所有分数将由布尔值预先排序,子顺序将在分数>100的分数之后排序其他分数


我希望这已经足够清楚了,你在寻找什么:)

从学生顺序中选择*按分数>100,分数desc

请注意,在每个数据库中,布尔值的排序可能不同。如果你写一个完整的:
当分数>100时,按案例排序,然后在其他情况下得分0结束,你可能会更安全(如果你的数据库理解它)