Ini akan memberi Anda kendali paling besar terhadapnya:
order by
case left(positions.colleague_position_id, 1)
when 'A' then 1
when 'F' then 2
when 'T' then 3
when 'S' then 4
when 'C' then 5
else 6
end, positions.colleague_position_id
Ini karena Anda dapat mengirim semua nilai yang tidak cocok ke posisi yang Anda inginkan (dalam hal ini di akhir). field()
fungsi akan mengembalikan 0
untuk nilai yang tidak cocok dan akan menempatkannya di bagian atas kumpulan hasil bahkan sebelum nilai yang dimulai dengan A
.
Selain itu, Anda juga dapat memesan dengan positions.colleague_position_id
seperti yang saya lakukan pada contoh, sehingga untuk banyak positions.colleague_position_id
yang dimulai dengan huruf yang sama akan tetap berurutan.