Use a expressão
field_c IS NOT NULL
como primeiro
ORDER BY
item. Ele avalia como ...FALSE
.. if NULLTRUE
.. se NÃO NULO. E
FALSE
(0) classifica antes de TRUE
(1). Funciona para qualquer tipo de dados e qualquer distribuição possível de valores. 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;