La plupart des nouvelles releases de DB2 UDB for iSeries incluent des améliorations progressives de SQL, comme de nouveaux types de données et de nouvelles fonctions intégrées. La V5R4 n’est pas différente à cet égard et présente de nouvelles fonctions intégrées pour le cryptage Triple DES, le traitement des dates et les fonctions d’échantillonnage. Par Kent Milligan - Dossier publié en Mai 2006
Les fonctions de SQL V5R4 dont il est question ici exigent le SQE (SQL Query Engine). Par conséquent, si votre environnement ou votre requête SQL contient un attribut non reconnu par SQE et si vous essayez d’utiliser l’une de ces nouvelles fonctions SQL, DB2 UDB signalera une erreur.
Voici quelques-uns des facteurs qui empêchent SQE d’honorer une requête SQL :
• Utilisation de
la fonction UPPER , LOWER ou TRANSLATE
• Séquence de tri en langue nationale
• UDTF (user-defined table function)
• Références de fichier logique sur
la clause FROM
• Fichiers logiques select/omit définis sur la table sousjacente
Pour plus de détails sur le support SQE, visitez www.ibm.com/iseries/db2/sqe.html.
En ordonnant les résultats d’une requête, vous aimeriez parfois appliquer un classement qui mette en évidence un autre attribut (par exemple, fournir une liste de vendeurs en ordre alphabétique, plus leur classement d’après le chiffre d’affaires total). La figure 1 montre un exemple de requête mettant en action cette syntaxe.
La clause ORDER BY classe la liste des joueurs de baseball en ordre alphabétique, pour trouver facilement un joueur.
L’expression OLAP Rank() fournit un classement secondaire lié à l’instruction SELECT en utilisant le nouveau mot-clé OVER. Ce classement secondaire (c’est-à-dire, OVER(ORDER BY batting_avg DESC)) génère les critères de classement pour l’ensemble des résultats.
Dans ce cas, le classement moyen de batting pour chaque joueur est inclus dans le résultat final et donc les joueurs sont classés d’après cette moyenne, en ordre décroissant. Ce classement permet d’identifier facilement les principaux marqueurs de la liste, comme le montre la sortie de requête de la figure 2. Voir Club Abonnés
La valeur soumise au classement n’est pas forcément limitée à une seule colonne. Le ORDER BY spécifié dans
la clause OVER accepte toutes les possibilités d’une clause ORDER BY normale (expressions, colonnes multiples, par exemple). Il existe une seconde expression de classement appelée Dense_Rank. Rank et Dense_Ranke se comportent presque à l’identique sauf quand les valeurs classées contiennent des doublons.
En examinant de près les résultats de la figure 2, on voit que deux des marqueurs les plus faibles (Perez et Foster) avaient en fait la même moyenne de batting et donc partageaient le même rang. Dans ce cas, l’expression Rank a provoqué un vide dans le classement en sautant de 6 à 8, à cause de l’égalité à la sixième place. Si vous exécutez à nouveau la même requête avec l’expression Dense_Rank, vous verrez dans la sortie de la figure 3 qu’il n’y a pas de vide dans le classement. Foster et Perez partagent le sixième rang et le rang de Concepcion remonte en position 7.
Téléchargez cette ressource
Prédictions 2025 des menaces persistantes avancées
L'analyse et l'évolution du paysage des menaces persistantes avancées (APT) et des conséquences sur vos infrastructures IT. Découvrez la synthèse des prédictions, tendances et recommandations pour 2025 avec les experts Kaspersky.