Was ist der Unterschied zwischen <> All und Not In?

7

Könnten Sie mir bitte die Unterschiede zwischen erzählen?

select CustomerId from Customer Where TerritoryId <> All(select TerritoryId from Salesperson)

select CustomerId from Customer where TerritoryId NOT IN (select TerritoryId from Salesperson)
Yevgraf Andreyevich Zhivago
quelle

Antworten:

8

Es gibt keinen Unterschied im Ergebnis, aber es gibt eine etwas andere Semantik.

X [comparison] ALL(set)bedeutet, dass setleer ist oder der Vergleich TRUEfür jeden Eintrag im Satz ist.

X NOT IN (set) bedeutet, dass X nicht zur Menge gehört.

Während [comparison]"nicht gleich" ist, sind beide Formen gleichwertig. Bei anderen Vergleichen kann dies jedoch anders sein.

Kondybas
quelle