SQL ALL COMMAND,子查询返回NULL,但是输出给出所有记录

时间:2019-07-03 08:23:40

标签: mysql sql teradata

在SQL中使用ALL命令,子查询返回NULL值,但是查询给出了表中的所有记录。

SELECT * FROM STORES
WHERE STORE_NUMBER = ALL(SELECT STORE_NUMBER FROM STORES WHERE STORE_NUMBER>10000)

子查询:

SELECT STORE_NUMBER FROM STORES WHERE STORE_NUMBER>10000

返回0条记录

但是,当我运行整个查询时,它会向我提供Stores表中的所有记录。是不是应该给NULL值?

1 个答案:

答案 0 :(得分:1)

好吧,这是根据Stnadrad SQL应该= ALL的工作方式:如果子查询不返回任何行(或所有返回的行共享相同的值),则条件评估为TRUE。 / p>

但是为什么要使用= ALL,这很不常见?