SQL我可以在WHERE子句中使用“OR”/“AND”

时间:2013-01-21 16:14:47

标签: sql

我是数据库的新手,想知道我是否可以使用类似这样的声明:

SELECT * FROM Table Where Name = "abc" or "xyz" or "pqr"; 

我知道这不起作用,我需要在表格中找到名称可能是其中任何一个的条目。

谢谢

6 个答案:

答案 0 :(得分:2)

您必须再次使用列名称:

SELECT * FROM Table 
Where Name = "abc" 
OR Name = "xyz" 
OR Name = "pqr";

但在这种情况下,做IN更好。

SELECT * FROM Table 
Where Name IN ("abc","xyz","pqr");

答案 1 :(得分:2)

您尚未指定关系数据库(SQL Server,Oracle,MySQL等),但每次都需要指定列名,如下所示:

SELECT * FROM Table 
Where Name = 'abc' or Name = 'xyz' or Name = 'pqr'; 

使用IN语句编写它会更有效:

SELECT * FROM Table 
Where Name IN ('abc', 'xyz', 'pqr'); 

答案 2 :(得分:1)

ANDOR一起使用的正确语法是:

SELECT * 
FROM Table 
Where Name = "abc" 
  or 
      Name = "xyz" 
  or 
      Name = "pqr"

请注意,您需要为每个子句限定列名。

虽然你可以使用:

SELECT * 
FROM Table 
Where Name IN ("abc", "xyz", "pqr");

答案 3 :(得分:0)

SELECT * FROM Table Where Name IN ('abc','yz','pqr')

答案 4 :(得分:0)

SELECT * FROM TABLE WHERE Field IN ('abc','xyz');

SELECT * FROM TABLE WHERE Field = 'abc' OR Field = 'xyz';

答案 5 :(得分:0)

您收到错误的原因是OR运算符的每一侧必须是一个计算结果为布尔值的表达式(true或false)。

这是您声明的更正版本:

  

Select * From Table Where Name = 'abc' or name = 'xyz' or name = 'pqr'

您也可以使用IN子句编写它:

  

Select * from Table Where Name in ('abc', 'xyz', 'pqr')