Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Rédacteur

    Participez à la FAQ au travers de cette discussion
    Bonjour,

    Cette discution est ouverte pour vous permettre de participer facilement à la FAQ DB2. Postez votre question réponse et je me ferai une joie de l'ajouter dans la FAQ. Bien sur vous serez repris comme auteur de la question/réponse. Alors n'hésitez pas à apporter votre pierre à l'édifice.

    Merci d'avance pour votre collabortion

  2. #2
    Membre éprouvé
    Recherche sur des caractères spéciaux (%, _) en SQL sur DB2 pour i5
    Comment rechercher enregistrement 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 :Sélectionner tout -Visualiser dans une fenêtre à part
    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 :Sélectionner tout -Visualiser dans une fenêtre à part
    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"
    Ancien rédacteur Java/J2EE ,C++Builder

  3. #3
    Rédacteur

    Citation Envoyé par Olivier Constans
    Comment rechercher enregistrement 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 :Sélectionner tout -Visualiser dans une fenêtre à part
    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 :Sélectionner tout -Visualiser dans une fenêtre à part
    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"
    FAIT

###raw>template_hook.ano_emploi###