查询要与两个值进行比较的列

时间:2010-10-03 21:36:57

标签: sql database oracle

我有一个包含三列的表格,我有一个列值,其值与值'aaaa'和'bbbb'

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

所以,如果我用“Select * from above.table查询,其中ColumnA ='aaaa'和ColumnA ='bbbb';”我得到答案为“没有选择行”!!!我要犯一个错误吗?

谢谢,

2 个答案:

答案 0 :(得分:2)

那是因为列不能同时是两个值 - 您需要使用OR:

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

另一种语法是IN子句:

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

答案 1 :(得分:2)

考虑一下。您正在执行AND操作,期望一列匹配两个不同的值(X = 1和X = 2)。它永远不会在逻辑上发生。我怀疑你想要一个OR。

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