| Positionsparameter |
|
|
|
PositionsparameterPositionsparameter werden in der Definition von SQL-Funktionen und in vorbereiteten Anfragen verwendet und stehen für einen später einzusetzenden Wert. Die Form eines Parameterverweises ist: $zahl Hier ist ein Bespiel für die Verwendung eines Positionsparameters in einer SQL-Funktion: CREATE FUNCTION abteilung(text) RETURNS abteilung AS 'SELECT * FROM abteilung WHERE naem = $1' LANGUAGE SQL; Wenn die Funktion aufgerufen wird, wird $1 hier durch das erste Funktionsargument ersetzt (das sollten wir ja eigentlich nach dem shellprogrammieren schon können). AggregatausdrückeEin Aggregatausdruck steht für die Anwendung einer Aggregatfunktion über eine Menge von Zeilen, die von einer Anfrage ausgewählt wurden. Eine Aggregatfunktion reduziert mehrere Eingabewerte auf einen einzelnen Wet, wie zum Beispiel die Summe oder den Durchschnitt der Werte. Die Syntax eines Aggregatausdrucks ist einer der folgenden: aggregat_name (ausdruck) aggregat_name (ALL ausdruck) aggregat_name (DISTINCT ausdruck) aggregat_name ( * ) wo aggregat_name eine vorab definierte Aggregatfunktion (möglicherweise mit Schemaname) ist und Ausdruck ein beliebiger Ausdruck, der nicht selbst einen Aggregatausdruck enthält. Die erste und die zweite Form führt die Aggregatfunktion für alle Eingabezeilen aus, für die der angegebene Ausdruck keinen NULL-Wert ergibt. (Tatsächlich entscheidet die Aggregatfunktion, ob sie NULL-Werte ignoriere will, aber alle eingebauten verhalten sich so.) Die dritte Form führt die Aggregatfunktion für alle unterschiedlichen Nicht-NULL-Werte aus, die sich aus dem Ausdruck für die Eingabezeilen ergeben. Die letzte Form führt die Aggregatfunktion einmal für jede Eingabezeile aus, unabhängig davon, ob der Wert NULL ist oder nicht. Da kein bestimmter Eingabewert angegeben wird, ist diese Form nur für die Aggregatfunktion count() nützlich. Ein Beispiel: TypumwandlungenPostgreSQL akzeptiert zwei gleichbedeutende Syntaxen für Typumwandlungen: CAST ( ausdruck AS typ ) ausdruck: :typ Die Syntax mit CAST stammt aus dem SQL-Standard; die Syntax mit :: ist die historische PostgreSQL-Variante. Eine ausdrückliche Typumwandlung kann oft ausgelassen werden, wenn keine Zweideutigkeit über den Typ besteht, den der Ausdruck produzieren muss (wenn er zum Beispiel einer Tabellenspalte zugewiesen wird); in solchen Fällen wendet das System eine Umwandlung automatisch an. Diese automatischen Umwandlung wird allerdings nur für Typenpaare angewendet, die im Systemkatalog zur "automatichen Typumwandlung" freigegeben sind. Andere Umwandlungen müssen mit der ausdrücklichen Umwandlungssyntax durchgeführt werden. Diese Einschränkung besteht, damit Überraschende Umwandlungen nicht ohne Benachrichtigung ausgefürht werden. Skalare UnteranfragenEine skalare Unteranfrage ist eine normale SELECT-Anfrage in Klammern, die genau eine Zeile mit einer Spalte ergibt. Das folgende Beispiel findet die Stadt mit der grössten Einwohnerzahl in jedem Land: SELECT name, ( SELECT max(einwohner) FROM staedte WHERE staedte.land = laender.name ) FROM laender ; |
| < Zurück | Weiter > |
|---|



