Gunakan ekspresi
field_c IS NOT NULL
sebagai ORDER BY
pertama barang. Ini mengevaluasi ke ...FALSE
.. jika NULLTRUE
.. jika TIDAK NULL.
Dan FALSE
(0) diurutkan sebelum TRUE
(1). Berfungsi untuk semua tipe data dan kemungkinan distribusi nilai.
SELECT field_a,
row_number() OVER (PARTITION BY field_b
ORDER BY field_c IS NOT NULL, field_c) AS row_number
FROM test_table
ORDER BY row_number;