温馨提示:本文翻译自stackoverflow.com,查看原文请点击:mysql - SQL ALL COMMAND, SUBQUERY RETURNS NULL BUT OUTPUT GIVES ALL RECORDS
mysql sql teradata

mysql - SQL ALL COMMAND,子查询返回空值,但输出给出所有记录

发布于 2020-03-27 10:56:44

使用ALLSQL中的命令,子查询返回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值吗?

查看更多

查看更多

提问者
Vamsi Chand Emani
被浏览
228
dnoeth 2019-07-03 22:07

好的,这就是= ALL按照Stnadrad SQL的工作方式:如果子查询不返回任何行(或者所有返回的行共享相同的值),则条件评估为TRUE

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