私はそのような条件付きクエリを持っています:
- 列 (順序) が 0 でない場合、値による順序付け 1 から 99999 (最大)
- 姓の順にすべて 0 を並べる必要があります。
したがって、そのようなテーブルがある場合
ID Order Last Name
1 0 Manner
2 1 Brock
3 0 Lester
4 0 Annual
5 0 Greatly
私が期待する結果は次のとおりです。
Brock
Annual
Greatly
Lester
Manner
これが私のクエリです。毎回何が起こっているかというと、順序以外の 0 が最初に来ることなく、姓の並べ替えが行われているということです。
select c.last_name
from person_reports crt
join person c
where c.org_id = 1000 and crt.reports_to_id = 100389 and c.id = crt.contact_id
order by c.last_name, case preference_num when 0 then 9999999 else preference_num end
私の現在の仕事の結果:
Annual
Brock
Greatly
Lester
Manner
助けてくれてありがとう