SQL缺少表达式

时间:2017-05-25 13:23:56

标签: sql oracle

我正在尝试选择性别为女性或x的数据。我使用的代码不能是男性返回Missing Expression:

    SELECT pet_id, name, gender, type, breed
    FROM Pet
    WHERE Name Like '%s' or Name like 'S%'
    And WHERE Gender ='F' or Gender ='X';

我的格式是否正常?

4 个答案:

答案 0 :(得分:1)

在您的查询中,您使用了where关键字两次无效 sql语法禁止您这样做,每个from关键字可以有一个whereselect
要选择多个字段,请用逗号分隔 要从多个表中进行选择,请用逗号分隔 在您使用的where子句中使用多个条件and& or(此规则适用于大多数编程语言,例如if(x1==1 and if (x2==2)),您不能使用if(x1==1 && x2==2)) 也可以尝试使用in运算符来确定您的性别状况

Gender in('F','X')

in运算符允许您检查给定列的值是否存在于数组/列表/系列可能值中。

答案 1 :(得分:0)

您的查询中有“where”重复。以下列方式重写应该有效:

SELECT pet_id, name, gender, type, breed
FROM Pet
WHERE (Name Like '%s' or Name like 'S%') AND (Gender ='F' or Gender ='X');

答案 2 :(得分:0)

试试这个

SELECT pet_id,name,gender,type,breed FROM Pet
Where (Name Like '%s' or Name like 'S%')
And (Gender ='F' or Gender ='X');

我们不能在单个查询中多次使用“Where”,正如我在您的情况下所见,您应该应用圆括号。

答案 3 :(得分:0)

删除第二个WHERE,不要忘记括号:

SELECT pet_id, name, gender, type, breed
    FROM Pet
    WHERE (Name Like '%s' or Name like 'S%')
       And Gender in ('F','X')