Brug udtrykket
field_c IS NOT NULL
som første ORDER BY
vare. Det evalueres til ...FALSE
.. hvis NULLTRUE
.. hvis IKKE NULL.
Og FALSE
(0) sorterer før TRUE
(1). Virker for enhver datatype og enhver mulig fordeling af værdier.
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;