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

Langage SQL Discussion :

Sélection dans une requête


Sujet :

Langage SQL

  1. #1
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 332
    Points : 718
    Points
    718
    Par défaut Sélection dans une requête
    Bonjour,

    J'ai une table avec différents enregistrements qui ont cette forme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Champ1      |     Champ2
    KA0000           |     cg10
    KA0001           |     cg16       
    KI0000           |     cg16
    KI1000           |     cg16
    KI2500           |     cg10
    Je veux récupérer tous les champs, sauf les KI% qui ont un cg16 uniquement (les autres cg16 doivent être récupérés).
    Comment dois-je procéder?

    Merci pour votre aide.

    A+
    Xavier

  2. #2
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 332
    Points : 718
    Points
    718
    Par défaut
    Citation Envoyé par escartefigue Voir le message

    La combinaison < or > est préférable à un test de différence au cas où un index est présent sur champ2
    Le champ2 n'est pas un index. Donc au final, y-a-t-il une solution?
    Xavier

  3. #3
    Membre éclairé
    Avatar de Asdorve
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 332
    Points : 718
    Points
    718
    Par défaut
    Ok, merci pour ces infos.
    Xavier

  4. #4
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Bonjour,

    Et tout le monde est d'accord avec la condition ?

    Ce serait pas plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where champ1 not like 'KI%' or champ2>'cg16' or champ2<'cg16' ;
    ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 781
    Points : 52 770
    Points
    52 770
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Bonjour,

    Et tout le monde est d'accord avec la condition ?

    Ce serait pas plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where champ1 not like 'KI%' or champ2>'cg16' or champ2<'cg16' ;
    ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM ????
    WHERE NOT (Champ1 LIKE 'KI%' AND Champ2 = 'CG16')
    Et dans tous les cas, quelque soit la façon de l'exprimer, cette requête n'est pas sargable...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

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

Discussions similaires

  1. Réponses: 23
    Dernier message: 13/12/2014, 15h48
  2. [AC-2007] Activer ou non un critère de sélection dans une requête
    Par benoistv dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 14/10/2014, 19h10
  3. Critère de sélection dans une requête
    Par tibo894 dans le forum Développement
    Réponses: 2
    Dernier message: 23/09/2011, 11h30
  4. [WD11] probléme dans la sélection dans une requête
    Par dj_techno dans le forum WinDev
    Réponses: 2
    Dernier message: 20/02/2009, 08h22
  5. Sélection dans une requête
    Par tinose dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 16/02/2008, 08h36

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