IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ DB2Consultez toutes les FAQ

Nombre d'auteurs : 3, nombre de questions : 15, dernière mise à jour : 11 février 2007  Ajouter une question

 

La FAQ DB2 est à votre disposition pour répondre à vos questions. L'équipe DB2 continuera dans l'avenir à travailler activement à compléter au mieux cette FAQ.

SommaireSélections (3)
précédent sommaire suivant
 

Pour récupérer les n premiers enregistrements d'un select, vous devez utiliser la clause FETCH FIRST n ROWS ONLY

Code sql : Sélectionner tout
SELECT * FROM matable FETCH FIRST 20 ROW ONLY

Mis à jour le 9 novembre 2006 jab

Comment rechercher les enregistrements dont un champ contient les caractères % ou _ avec la fonction LIKE alors que % et _ sont des "wildcards" pour le SQL de l'i5 ?
Supposons que nous ayons un fichier avec 2 champs "code" et "description" et que nous souhaitions rechercher tous les codes dont la description contient un pourcentage.
Par exemple nous souhaitons récupérer tout les codes dont la description commence par 'SBA - 50 %'.
Etant donné que '%' est le caractère de remplacement nous ne pouvons utiliser

Code SQL : Sélectionner tout
SELECT * FROM TABLE WHERE DESC LIKE 'SAB - 50 %%'
Cela ne marche pas et nous retourne les enregistrements commençants par SBA - 50 avec ou sans %.
Il faut pour cela utiliser la fonction escape de la façon suivante.

Code SQL : Sélectionner tout
SELECT * FROM TABLE WHERE DESC LIKE 'SBA - 50 @%%' escape'@'
Escape permet de spécifier un caractère qui va identifier le caractère suivant comme étant une caractère et non un "wildcard"

Mis à jour le 11 février 2007 Olivier Constans

Pour prendre la valeur d'une colonne plutôt que d'une autre en fonction d'une
condition et la retourner dans un select, vous devez utiliser l'instruction "Case".
Par exmple, un select doit retourner la valeur de la colonne "ColA" mais si celle-ci
vaut zéro, il faut alors retourner la valeur de la colonne "ColB".

Code sql : Sélectionner tout
1
2
3
4
5
6
7
  
SELECT maTable.Colx, maTable.Coly, 
   CASE maTable.ColA 
     WHEN 0 THEN maTable.ColB 
     ELSE maTable.ColA 
   END 
   FROM maTable
Il est également possible d'effectuer la condition sur un autre champ.

Code sql : Sélectionner tout
1
2
3
4
5
6
7
  
SELECT maTable.Colx, maTable.Coly, 
   CASE maTable.ColC 
     WHEN 0 THEN maTable.ColB 
     ELSE maTable.ColA 
   END 
   FROM maTable

Mis à jour le 11 février 2007 jab Mercure

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.