Travaillant beaucoup avec Oracle 11gR1/R2 et un peu avec SQL-Server 2005, je trouve chez le premier des fonctions qui me facilitent la vie et qui n'existent pas chez le second.
Une mise à niveau du SQL qui - il me semble - n'a que très peu évolué depuis SQL-Server 2005 :
- Les fonctions GREATEST / LEAST
- Support de plus d'arguments dans les fonctions TRIM (afin de trimer autre chose que des espaces) et CHARINDEX / PATHINDEX (gestion du nombre d'occurrence des chaînes rencontrées)
- Support des intervalles de temps
- Le support de la clause ORDER BY dans
toutes les fonctions de fenêtrages (comme SUM, afin d'enfin pouvoir faire des cumuls sans faire de jointure).
- Les fonctions de fenêtrage comme LEAD / LAG (comme précédemment, économie de jointures pour certains besoins simples) et FIRST_VALUE / LAST_VALUE / NTH_VALUE
- Les compléments de clauses de tri NULLS FIRST / NULLS LAST
- Les constructeurs de lignes valuées qui permettent d'écrire :
1 2 3 4
| where (c1, c2) in (('v1', 'v2'), ('v3', 'v4'))
-- au lieu de
where (c1 = 'v1' and c2 = 'v2')
or (c1 = 'v3' and c2 = 'v4') |
ainsi que des sous-requêtes plus simples :
where (c1, c2) in (select c3, c4 from ...)
- Implémentation de la
fonction / mot-clef DATE afin de lever les doutes entre chaîne et date lors de la saisie d'un littéral
- Tables externes qui mappent vers un fichier plat (très pratique)
[
Partager