WITH OR WTF?

Bist du schon über eine Klausel mit "WITH" gestolpert? Die Klausel "WITH" soll komplexe Queries organisieren sowie die einzelne Abschnitte lesbarer machen und ist dementsprechend anders strukturiert als die Queries in der Tabellenübersicht.

 

Syntax:

WITH query_name(column_name1...) AS

          (SELECT....)

SELECT...

 

Beispiel einer Abfrage:

Finde alle Namen, die mehr verdienen als das Durchschnittsgehalt.

WITH temporaryTable(averageValue) AS

         (SELECT avg(Salary) 

           FROM originalTablename)

            SELECT Id, Name, Salary

             FROM originalTablename, temporaryTable

             WHERE originalTablename.Salary > temporaryTable.averageValue

Auf WITH folgt SELECT!

 

Betrachte alles was im Zusammenhang mit WITH steht als temporäre Ansicht. Dies wird nirgends dauerhaft in einer Datenbank gespeichert.


WITH temporaryTable(averageValue) AS

         (SELECT avg(Salary) 

           FROM originalTablename)

            SELECT Id, Name, Salary

             FROM originalTablename, temporaryTable

             WHERE originalTablename.Salary > temporaryTable.averageValue

TemporaryTable = freiwählbarer Tabellenname

averageValue = freiwählbarer Spaltenname