Je lis un vieux code au travail et j'ai remarqué qu'il y a plusieurs vues avec une order by 1clause. Qu'est-ce que cela accomplit?
Exemple:
Create view v_payment_summary AS
SELECT A.PAYMENT_DATE,
       (SELECT SUM(paymentamount)
          FROM payment B
         WHERE PAYMENT_DATE = B.PAYMENT_DATE
           and SOME CONDITION) AS SUM_X,
       (SELECT SUM(paymentamount)
          FROM payment B
         WHERE PAYMENT_DATE = B.PAYMENT_DATE
           and SOME OTHER CONDITION) AS SUM_Y    
FROM payment A    
ORDER BY 1;ORDER BYdans un VIEW. Le SQL standard ne le permet pas. SQL Server l'interdit depuis 2005. Pour les implémentations SQL qui le permettent, le comportement est largement non documenté et contre-intuitif. En d'autres termes, à éviter définitivement.
                TOPest présent, et SSMS aime ajouter TOP 100 PERCENT.
                CHECKcontrainte dans a CREATE TABLEmais il ne l'honorera pas réellement - il n'est jamais vérifié! La question est la suivante: est-ce que ces produits SQL respectent toujours les ORDER BYvues in, par exemple lorsqu'ils sont utilisés dans une requête qui comporte également un ORDER BYtrié deux fois? Documentent-ils même le comportement ou devez-vous regarder les plans d'exécution pour le résoudre? Je pense que nous connaissons les réponses;)
                ORDER BY 1... en utilisant une astuce d'application croisée où vous voulez un alias vide. Malheureusement, le code, par exemple, est trop gros pour un commentaire, je l'ai donc posté en tant que réponse ci-dessous FYI.