2010-10-03 7 views
1

J'ai une table avec trois colonnes et je chercher une colonne dont la valeur correspond à la valeur « AAAA » et « bbbb »requête pour une colonne à comparer contre deux valeurs

columnA   ColumnB  ColumnC 
data1   yyyy   aaaa 
data2   zzzz   mmmm 
data1   hhhh   nnnn 
data3   aaaa   bbbb 

Donc, si je fais une recherche avec "Select * from above.table où ColumnA = 'aaaa' et ColumnA = 'bbbb';" Je reçois la réponse comme 'aucune ligne sélectionnée' !!! Est-ce que je vais commettre une erreur?

Merci,

Répondre

2

Pensez-y une minute. Vous exécutez une opération ET attend une colonne pour correspondre à deux valeurs différentes (X = 1 ET X = 2). Cela ne peut jamais arriver logiquement. Je soupçonne que vous voulez un OU à la place.

select * 
    from YourTable 
    where ColumnA = 'aaaa' OR ColumnA = 'bbbb' 
2

C'est parce qu'une colonne ne peut pas être deux valeurs en même temps - vous devez utiliser un OU:

SELECT * 
    FROM YOUR_TABLE 
WHERE (columnc = 'aaaa' 
    OR columnc = 'bbbb') 

Une autre syntaxe est la clause IN:

SELECT * 
    FROM YOUR_TABLE 
WHERE columnc IN ('aaaa','bbbb') 
Questions connexes