在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值?
答案 0 :(得分:1)
好吧,这是根据Stnadrad SQL应该= ALL
的工作方式:如果子查询不返回任何行(或所有返回的行共享相同的值),则条件评估为TRUE
。 / p>
但是为什么要使用= ALL
,这很不常见?