ROW_NUMBER richiede un ORDER BY
clausola sintatticamente. Non puoi usarlo senza uno. SELECT NULL
è un trucco per chiudere l'errore senza applicare alcun ordine particolare. In questo caso non è necessario imporre alcun ordine, quindi l'opzione più veloce è utilizzare SELECT NULL
.
L'ottimizzatore vede attraverso questo trucco, quindi non ha costi di runtime (questa affermazione è facilmente verificabile osservando il piano di esecuzione).