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 :

Modifier une requête avec la date de naissance


Sujet :

SQL Oracle

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    consultant informatique
    Inscrit en
    Août 2018
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : consultant informatique

    Informations forums :
    Inscription : Août 2018
    Messages : 172
    Points : 0
    Points
    0
    Par défaut Modifier une requête avec la date de naissance
    Bonjour,
    je dois modifier une requête pour sélectionner uniquement les clients ayant un code postal(zipcode)égal
    à 75000 ou 34000 et ayant une date de naissance (birth_date)définie.
    il faut afficher que les colonnes LASTNAME et FIRSTNAME dans cet ordre
    la requête est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select *
    from costumer;
    je l'ai donc modifié en suivant toutes ces conditions citées là haut et j'obtiens:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select lastname,firstname
    from customer
    where(zipcode=75000 or zipcode=34000) and birth_date not null;
    Voilà j'ai du mal avec la condition:ayant une date de naissance(birth_date) définie
    je ne sais pas comment traduire cette condition en SQL,j'ai donc écrit birth_date not null
    dans mon code mais je sais que c'est faux.
    Avez vous une idée svp?

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Si la base de données est correctement construite, la colonne zipcode doit avoir été déclarée comme une chaine de caractères et non une valeur numérique.
    Lorsqu'on recherche une valeur dans une liste, on utilise de préférence l'opérateur IN plutôt qu'une suite de conditions avec OR.
    La bonne syntaxe pour vérifier si une colonne est définie est colonne is not null.
    On en arrive donc à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select  lastname
        ,   firstname
    from    customer
    where   zipcode in ('75000', '34000')
        and birth_date is not null
    ;
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    consultant informatique
    Inscrit en
    Août 2018
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : consultant informatique

    Informations forums :
    Inscription : Août 2018
    Messages : 172
    Points : 0
    Points
    0
    Par défaut Re
    Merci,effectivement zipcode est une chaine de caractère
    encore merci.

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    consultant informatique
    Inscrit en
    Août 2018
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : consultant informatique

    Informations forums :
    Inscription : Août 2018
    Messages : 172
    Points : 0
    Points
    0
    Par défaut Re
    Et si je veux utiliser que des égalités et non IN, est ce que c'est possible de faire
    le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select lastname,firstname
    from customer
    where (zipcode='75000' OR zipcode='34000')
    AND birth_date is not null;
    est ce que ça peut marcher ce code?

  5. #5
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Ca fonctionne aussi, mais c'est moins joli
    Et ça deviendra vite lourd si d'autres valeurs viennent s'ajouter à la liste.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    consultant informatique
    Inscrit en
    Août 2018
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : consultant informatique

    Informations forums :
    Inscription : Août 2018
    Messages : 172
    Points : 0
    Points
    0
    Par défaut Re
    D'accord

  7. #7
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Citation Envoyé par master MI Voir le message
    est ce que ça peut marcher ce code?
    Oui, d'ailleurs c'est ce que vous allez voir si vous faites un explain plan de votre requête avec un IN (réécrit par le parser en succession de OR).

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

Discussions similaires

  1. [AC-2010] Problème sur une requête avec 3 dates
    Par AUDOMAROIS dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 11/02/2014, 20h39
  2. SQL contruire une requête avec des dates d'applications
    Par fredodeveloppeur dans le forum Langage SQL
    Réponses: 1
    Dernier message: 15/04/2013, 02h24
  3. [AC-2007] Concaténer plusieurs champs d'une table dans une requête avec format date
    Par MelaAllIn dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 25/08/2011, 10h05
  4. Problème avec une requête avec date
    Par WELCOMSMAIL dans le forum SQL
    Réponses: 6
    Dernier message: 29/05/2008, 13h36
  5. Je recherche de l'aide sur une requête avec dates
    Par Alain CARDINI dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 22/05/2008, 22h11

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