IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

SQL Oracle Discussion :

Analyser le contenu d'un champ Oracle


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 120
    Par défaut Analyser le contenu d'un champ Oracle
    Bonjour,
    Je cherche à vérifier si un champ ne contient que des valeurs autorisées

    J'ainsi une table de la forme suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ID_CLE, NB_VALEURS, DONNEES_A_VERIFIER
    1, 2, 18|28
    2, 2, 7|34
    3, 4, 18|28|38|48
    4, 1, 8
    5, 3, 18|27|48
    ...
    J'aimerais savoir comment écrire une requête SQL qui extrait de ma table uniquement les enregistrements pour lesquels les valeurs du champ "DONNEES_A_VERIFIER" sont parmi celles autorisées : 18, 28, 38, 48 et qui ajoute un champ pour donner le résultat de la vérification (NOK si autre chose que 18, 28, 38 ou 48 à partir du moment où on a au moins 18 ou 28 ou 38 ou 48 ?

    Je n'arrive pas à savoir comment faire.

    En résultat, j'aimerais avoir ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ID_CLE, NB_VALEURS, DONNEES_A_VERIFIER, VERIF
    1, 2, 18|28, OK
    3, 4, 18|28|38|48, OK
    5, 3, 18|27|48, NOK
    Merci beaucoup à tous pour vos idées.

    MarieO

  2. #2
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Créer une colonne virtuelle avec la fonction DECODE, ça marche pas?

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 120
    Par défaut
    Bonjour,

    Ca doit certainement marcher, mais ma question est qu'est-ce que je mets dans le DECODE ?

    Si je fais un DECODE(DONNEES_A_VERIFIER,18,...) jamais je n'aurais OK ou NOK car je dois regarder les valeurs qui ne sont pas des '|'.

    Je sais que je vais faire une clause WHERE avec la condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     where DONNEES_A_VERIFIER like '%18%' or DONNEES_A_VERIFIER like '%28%' or DONNEES_A_VERIFIER like '%38%' or DONNEES_A_VERIFIER like '%48%'
    Par contre, je ne sais pas comment faire ce DECODE pour qu'il me dise
    - OK si je n'ai que 18 et/ou 28 et/ou 38 et/ou 48 dans DONNEES_A_VERIFIER
    - NOK à partir du moment où j'ai autre chose que 18, 28, 38 ou 48 dans DONNEES_A_VERIFIER.

    Merci encore.
    MarieO

  4. #4
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Attention,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where DONNEES_A_VERIFIER like '%18%' or DONNEES_A_VERIFIER like '%28%' or DONNEES_A_VERIFIER like '%38%' or DONNEES_A_VERIFIER like '%48%'
    va te retourner la ligne "5, 3, 18|27|48, NOK"

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 120
    Par défaut
    C'est bien ce que je veux.

    En résultat, je veux avoir TOUTES les lignes qui ont au moins 18 ou 28 ou 38 ou 48 dans le champ "DONNEES_A_VERIFIER", et pas du tout les lignes qui ne contiennent pas ces valeurs dans DONNEES_A_VERIFIER.

    Par contre, je veux en plus un champ "VERIF" qui me dira si l'enregistrement retourné est "OK (que 18 et/ou 28 et/ou 38 et/ou 48) ou "NOK" si au moins une valeur de DONNEES_A_VERIFIER n'est pas 18, 28, 38 ou 48.

  6. #6
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    "je veux avoir TOUTES les lignes qui ont au moins 18 ou 28 ou 38 ou 48 "
    Je ne comprends alors pas pourquoi tu ne veux pas "5, 3, 18|27|48" car elle a 18 et 48...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/08/2011, 16h03
  2. Analyse du contenu d'un champ texte
    Par mouzillon dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 22/07/2009, 09h44
  3. Réponses: 12
    Dernier message: 06/11/2007, 15h17
  4. Contenu d'un champ tronqué dans mon input box
    Par Marmot dans le forum ASP
    Réponses: 2
    Dernier message: 27/10/2004, 13h30
  5. Recuperer le contenu d'un champs texte
    Par bouboussjunior dans le forum ASP
    Réponses: 4
    Dernier message: 29/09/2004, 14h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo