0
votes

Comment sélectionner plusieurs lignes avec la même condition de colonne

Comment sélectionner plusieurs lignes avec la même condition de colonne? XXX PRE>

J'ai ces deux paramètres, Bob et Kay. J'ai donc besoin de récupérer l'enregistrement Bob et Kay. Si Bob ou Kay n'existe pas dans le tableau, retournez vide. Si Bob et Kay existent dans le tableau montrent deux enregistrements. P>

Le SQL ci-dessous ne fonctionne pas pour moi p>

Select * from table where Name = 'Bob' And Name = 'Kay'


3 commentaires

Quels RDBM utilisez-vous?


db im en utilisant est oracle


Vous semblez manquer quelques détails. Donc, si seulement l'un des Bob ou kay n'existe pas, vous ne voulez pas que des lignes retournées? Et s'il y a plusieurs rangées avec (les deux?), Voulez-vous que toutes les lignes sont retournées? Un seul pour chacun? Si oui, quelle est l'exigence pour lesquelles?


4 Réponses :


0
votes

Sélectionnez * à partir de la table où nom = 'Bob' ou Nom = 'KAY'

Vous voulez sélectionner une ligne où le nom = 'Bob' ou nom = 'kay'. N'oubliez pas que le SQL est appliqué par rangée. Un nom ne peut donc pas égaler à la fois 'Bob' et 'Kay' en même temps.


1 commentaires

Disons si SELECT * à partir de la table où nom = 'Bob' ou Nom = 'AAAAA'. AAAAA n'existe pas sur la table. Je veux ça retour vide au lieu de bob record



1
votes

Ceci suppose que Bob et Kay sont uniques dans le tableau

  Select * from table 
   where Name IN ('Bob', 'Kay') 
     and ( select count(*) from table where Name IN ('Bob', 'Kay')) = 2


1 commentaires

Oui. Compte (nom distinct) au lieu de compter (*)



2
votes

Vous pouvez essayer d'utiliser existez avec avec la fonction d'agrégat de condition. xxx

Query 1 : xxx

Résultats < / a> : xxx


0 commentaires

0
votes

J'utiliserais des tables temporelles pour faire cette opération, quelque chose comme ceci: xxx


0 commentaires