Der Unterschied zwischen WHERE- und HAVING-Klauseln ist der Geltungsbereich: WHERE filtert die Basiszeilen und HAVING filtert die gruppierte Ergebnismenge. WHERE wird für Einzelzeilenbedingungen und HAVING für Gruppenergebnisbedingungen verwendet. WHERE kommt nach FROM und vor SELECT, HAVING kommt nach GROUP BY. WHERE kann allein verwendet werden, HAVING muss mit einer Gruppenoperation verwendet werden.
Unterschied zwischen WHERE- und HAVING-Klauseln in Oracle
WHERE und HAVING sind zwei SQL-Klauseln, die zum Filtern des Datensatzes verwendet werden. Der Hauptunterschied zwischen ihnen ist ihr Geltungsbereich:
1. Geltungsbereich
-
Die WHERE-Klausel wird zum Filtern zugrunde liegender Tabellen- oder Ansichtszeilen verwendet. Es wird vor dem Gruppierungsvorgang ausgeführt, sodass die Bedingung auf eine einzelne Zeile angewendet wird. Die
-
HAVING-Klausel wird zum Filtern der gruppierten Ergebnismenge verwendet. Es wird nach dem Gruppierungsvorgang ausgeführt und wendet also Bedingungen auf die Gruppierungsergebnisse an.
2. Verwendungsszenarien
-
WHERE-Klausel wird zum Filtern von Zeilen verwendet, die bestimmte Bedingungen nicht erfüllen. Um beispielsweise alle Artikel mit einem Preis über 100 $ zu finden:
<code class="sql">SELECT * FROM products WHERE price > 100;</code>
-
HAVING-Klausel wird verwendet, um Gruppen zu filtern, die bestimmte Kriterien erfüllen. Suchen Sie beispielsweise nach Gruppen von Artikeln mit einem Durchschnittspreis von über 100 $:
<code class="sql">SELECT category, AVG(price) AS avg_price
FROM products
GROUP BY category
HAVING avg_price > 100;</code>
3. Position
-
Die WHERE-Klausel befindet sich nach der FROM-Klausel und vor der SELECT-Klausel. Die
-
HAVING-Klausel befindet sich nach der GROUP BY-Klausel.
4. Beispiel
<code class="sql">-- 使用 WHERE 子句过滤行
SELECT * FROM orders WHERE customer_id = 1;
-- 使用 HAVING 子句过滤组
SELECT product_category, SUM(quantity) AS total_quantity
FROM order_details
GROUP BY product_category
HAVING total_quantity > 100;</code>
Hinweis:
- HAVING-Klausel kann nur mit Gruppierungsoperationen verwendet werden, während WHERE-Klausel in jeder SQL-Anweisung verwendet werden kann.
- Die in der HAVING-Klausel verwendete Bedingung muss sich auf eine Aggregatfunktion oder Gruppierungsspalte beziehen.
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Wo und Haben im Orakel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn