在SQL查询中“不喜欢”

时间:2009-11-19 11:39:26

标签: sql oracle ora-00936

为什么这个简单的查询返回'ORA-00936:missing expression'(数据库是Oracle,你可以告诉):

SELECT * FROM transactions WHERE id NOT LIKE '1%' AND NOT LIKE '2%'

我觉得很傻,但我做错了什么?

4 个答案:

答案 0 :(得分:64)

您错过了第二个id中的字段名称NOT LIKE。尝试:

SELECT * FROM transactions WHERE id NOT LIKE '1%' AND id NOT LIKE '2%'

where子句中的AND连接2个完整条件表达式,例如id NOT LIKE '1%',不能用于列出id为“不喜欢”的多个值。

答案 1 :(得分:10)

您需要在两个表达式中指定列。

SELECT * FROM transactions WHERE id NOT LIKE '1%' AND id NOT LIKE '2%'

答案 2 :(得分:9)

你错过了NOT之前的id;它需要指定。

SELECT * FROM transactions WHERE id NOT LIKE '1%' AND id NOT LIKE '2%'

答案 3 :(得分:1)

在“与”之后和“或”之后,查询已经忘记了所有内容。

我也不知道它与任何SQL /编程语言有关。

if(SOMETHING等于“ X”或SOMETHING等于“ Y”)

不喜欢“ A%”的列和不喜欢“ B%”的列