SQL WITH-clausule voorbeeld [duplicaat]

Ik probeerde te begrijpen hoe ik de WITH-clausule en het doel van de WITH-clausule moest gebruiken.

Alles wat ik begreep was dat de WITH-clausule een vervanging was voor normale subquery’s.

Kan iemand mij dit met een klein voorbeeld in detail uitleggen?


Antwoord 1, autoriteit 100%

De SQL WITH-clausule is door Oracle geïntroduceerd in de Oracle 9i release 2-database. Met de SQL WITH-component kunt u een subqueryblok een naam geven (een proces dat ook wel subquery-refactoring wordt genoemd), waarnaar op verschillende plaatsen in de hoofd-SQL-query kan worden verwezen. De naam die aan de subquery is toegewezen, wordt behandeld alsof het een inline-weergave of tabel is. De SQL WITH-component is in feite een vervanging voor de normale subquery.

Syntaxis voor de SQL WITH-clausule

Het volgende is de syntaxis van de SQL WITH-component bij gebruik van een enkele subquery-alias.

WITH <alias_name> AS (sql_subquery_statement)
SELECT column_list FROM <alias_name>[,table_name]
[WHERE <join_condition>]

Bij gebruik van meerdere subquery-aliassen is de syntaxis als volgt.

WITH <alias_name_A> AS (sql_subquery_statement),
<alias_name_B> AS(sql_subquery_statement_from_alias_name_A
or sql_subquery_statement )
SELECT <column_list>
FROM <alias_name_A>, <alias_name_B> [,table_names]
[WHERE <join_condition>]

In de syntaxisdocumentatie hierboven is het voorkomen van alias_name een betekenisvolle naam die u zou geven aan de subquery na de AS-clausule. Elke subquery moet worden gescheiden met een komma Voorbeeld voor WITH verklaring. De rest van de query’s volgen de standaardformaten voor eenvoudige en complexe SQL SELECT-query’s.

Voor meer informatie: http://www.brighthub.com/ internet/web-development/articles/91893.aspx


Antwoord 2, autoriteit 35%

Dit is hier volledig beantwoord.

Bekijk de documenten van Oracle op SELECT om zie hoe subquery factoring werkt, en Marks voorbeeld:

WITH employee AS (SELECT * FROM Employees)
SELECT * FROM employee WHERE ID < 20
UNION ALL
SELECT * FROM employee WHERE Sex = 'M'

LEAVE A REPLY

Please enter your comment!
Please enter your name here

17 − five =

Other episodes