SQL:错误:用作表达式的子查询返回的多行

时间:2010-10-03 05:09:55

标签: sql

事情是它确实返回一行。

这就是事情。

SELECT...

FROM...

WHERE...

GROUP BY...

HAVING randomNumber > (SELECT value FROM.....)

每当我有像=,>这样的符号时它总是给我这个错误。当我做IN时它没有。

在与另一张桌子比较时,你不应该使用比较符号吗?

2 个答案:

答案 0 :(得分:8)

键入时:

SomeValue IN (SELECT ...)

相当于使用:

SomeValue = ANY (SELECT ...)

不要使用第二种表示法 - 但它说明了一点。当SELECT返回多个值时,必须对比较器使用ANY或ALL。当你省略ANY或ALL时,你必须有一个只返回一个值的SELECT。

答案 1 :(得分:0)

您可以使用IN运算符指定多个值。如果您使用>, = , <等,请尝试使用:

HAVING randomNUmber > (SELECT MAX(value) FROM ......)