> Tech > Utilisation de l’instruction Select

Utilisation de l’instruction Select

Tech - Par iTPro - Publié le 24 juin 2010
email

Voici la structure de base de l'instruction Select :

Select clause
From clause
Where clause
Group by clause
Having clause
Order by clause Bien que l'instruction ci-dessus ne reflète pas la syntaxe complète de Select, elle suffira à  nous occuper un certain temps.

Considérons l'instruction Select suivante

:

Select CuName, CuSts
From Customer

Cette instruction génère une table résultat (fichier) composée de deux
colonnes (champs) CuName et CuSts. Notez que l’on peut sélectionner tous les champs
de la table sous-jacente (Customer) en utilisant le symbole astérisque (*) comme
suit :

Select *
From Customer

Bien qu’on puisse penser que la clause Select se résume à  récupérer
une liste de colonnes sélectionnées ou l’ensemble des colonnes d’une table sous-jacente,
elle est beaucoup plus puissante qu’il n’y paraît. On pourrait par exemple utiliser
l’instruction Select ci-dessous pour effectuer certaines analyses. L’exemple proposé
calcule la moyenne des arriérés dus par les clients de la base Customer :

Select
CuNum,
( CuOv30 + CuOv60 + CuOv90 )/ 3 as AvgDue
From Customer

Ce type d’analyse peut être utile. Toutefois, du fait de la manière
dont le SQL calcule les résultats intermédiaires, il se peut que le format du
résultat renvoyé ne convienne pas. Ainsi, la figure 1 présente les résultats obtenus
après exécution de la requête SQL susmentionnée.

Comme le montre la figure 2, cette requête génère des résultats plus lisibles
en SQL. La fonction Decimal est une fonction scalaire. Autrement dit, elle
peut être appliquée à  des colonnes ou expressions distinctes. Les deuxième et
troisième paramètres de la fonction Decimal (9 et 2 dans notre exemple) définissent
respectivement le nombre total de chiffres et le nombre de chiffres affichés après
la virgule.

Toute aussi utile, la fonction Digits est une fonction scalaire qui convertit
une expression numérique en chaîne de caractères. L’une des raisons qui poussent
à  effectuer de telles conversions est que la fonction Substr (substring) ne peut
extraire qu’un sous-ensemble d’une chaîne de caractères (et non une expression
numérique). Supposons que l’on dispose d’une table nommée OrdHdr (order header)
qui possède deux colonnes : OhNum (order number) et OhShDt (order ship date).
Supposons toujours qu’OhShDt représente un champ date de type décimal condensé
8,0 et de format AAAAMMJJ. Si on souhaite n’afficher que le numéro d’ordre et
le chiffre correspondant au mois, on peut exécuter la requête suivante :

Select
OhNum, Substr( Digits( OhShDt), 5, 2 )
as Month
From OrdHdr

Cette requête génère un résultat formaté et présenté dans la figure
3. La fonction Digits convertit le champ numérique OhShDt en chaîne de caractères.
Le deuxième argument de Substr indique la position de départ de la sous-chaîne
de caractères. Etant donné qu’OhShDt est au format AAAAMMJJ, une position de départ
de 5 fait référence au premier chiffre du champ mois. Le troisième et dernier
paramètre représente la longueur de la sous-chaîne (2 dans notre exemple) correspondant
au champ mois à  deux chiffres.

La prochaine fois, nous continuerons à  explorer la clause Select. A bientôt !

Téléchargez gratuitement cette ressource

Endpoint Security : Guide de Mise en œuvre

Endpoint Security : Guide de Mise en œuvre

Détournement d’applications légitimes, élévation de privilèges, logiciels malveillants furtifs : comment les solutions de Endpoint Security permettent elles de faire face aux nouvelles techniques d'attaques complexes ? Découvrez, dans ce Guide Endpoint Security, les perspectives associées à leur mise en œuvre.

Tech - Par iTPro - Publié le 24 juin 2010