Sql-Standard
“<> ANY(…)”和“NOT = ANY(…)”之間的區別?
你能解釋一下這兩個運營商之間的區別嗎?
sID != smth 而不是 sID = smth。
乍一看,他們似乎完全平等。但他們給出了不同的結果。
NOT sid = ANY (SELECT ...)
相當於:
sid <> ALL (SELECT ...)
所以,你的兩個條件不一樣。
ALL
並且ANY
操作員對我(和很多人)來說很難使用。我認為這就是有多少人更喜歡使用IN
,NOT IN
,這EXISTS
會NOT EXISTS
產生更多不言自明的程式碼。如果您確實想與他們合作,請認為這
sid = ANY (SELECT ...)
意味著“檢查是否sid
等於任何(某些)(select...)
值”。然後
NOT sid = ANY (SELECT ...)
是相反的。但是“等於其中任何一個”的反義詞是“對所有這些都不同”(而不是“與其中一些不同”)。