ANY und ALL

Vergleiche einen Wert mit jeder Zeile, die eine Unterabfrage zurückgibt. ALL bedeutet jede Zeile; ANY bedeutet mindestens eine.

Syntax

WHERE column operator ALL (SELECT ...)
WHERE column operator ANY (SELECT ...)
  • Der Operator ist ein Vergleich wie >, < oder =.
  • = ANY ist dasselbe wie IN. > ALL und > ANY haben kein IN-Äquivalent.

Beispiel

SELECT name FROM products WHERE unit_price > ALL (SELECT unit_price FROM products WHERE category = 'drinks');

Produkte, die teurer sind als jedes Getränk: die zwei Kuchenstücke und das Sourdough loaf.

Verwendete Tabellen: products. Probiere es unten in einer Lektion aus.

Häufige Fehler

  • ALL einer leeren Unterabfrage ist für jede Zeile wahr, was selten gemeint ist. ANY einer leeren Unterabfrage ist nie wahr.

Übe es