Que signifie "ORDER BY (SELECT NULL)"?

Le SQL suivant provient d'Itzik Ben-Gan qui est utilisé pour générer une table de nombres. Que signifie la order by (select null) partie? Merci.

 DECLARE @number_of_numbers INT; SELECT @number_of_numbers = 100000; WITH a AS ( SELECT 1 AS i UNION ALL SELECT 1 ), b AS ( SELECT 1 AS i FROM a AS x , a AS y ), c AS ( SELECT 1 AS i FROM b AS x , b AS y ), d AS ( SELECT 1 AS i FROM c AS x , c AS y ), e AS ( SELECT 1 AS i FROM d AS x , d AS y ), f AS ( SELECT 1 AS i FROM e AS x , e AS y ), numbers AS ( SELECT TOP ( @number_of_numbers ) ROW_NUMBER() OVER ( ORDER BY ( SELECT NULL ) ) AS number FROM f ) SELECT * FROM numbers; 

Merci!

    ROW_NUMBER nécessite une clause ORDER BY syntaxiquement. Vous ne pouvez pas l'utiliser sans un. SELECT NULL est un hack pour bloquer l'erreur tout en n'appliquant aucun ordre particulier. Dans ce cas, nous n'avons pas besoin d'appliquer d'ordre, l'option la plus rapide est donc d'utiliser SELECT NULL .

    L'optimiseur voit à travers cette astuce, il n'a donc pas de coût d'exécution (cette affirmation est facilement vérifiée en regardant le plan d'exécution).