Heim >Datenbank >MySQL-Tutorial >Wie verkette ich String-Spalten in PostgreSQL-SELECT-Abfragen?
String-Spalten in PostgreSQL-SELECT-Abfrage verketten
In PostgreSQL ist das direkte Verketten von Zeichenfolgenspalten in einer SELECT-Abfrage nicht trivial. Betrachten Sie das folgende Beispiel:
<code class="language-sql">select a || b from foo;</code>
Wobei a und b Spalten vom Typ Zeichen(2) sind. Dies gibt NULL anstelle der erwarteten Verkettung der a- und b-Werte zurück.
Die einfachste Lösung zum Verketten von Zeichenfolgenspalten besteht darin, mindestens eine Spalte in Text umzuwandeln:
<code class="language-sql">SELECT a::text || b AS ab FROM foo;</code>
Alternativ können Sie die Funktion concat_ws()
verwenden, die beliebig viele Argumente akzeptiert und NULL-Werte ignoriert:
<code class="language-sql">SELECT concat_ws(', ', a, b) AS ab FROM foo;</code>
Wenn Sie keine Trennzeichen benötigen, können Sie die Funktion concat()
verwenden:
<code class="language-sql">SELECT concat(a, b) AS ab FROM foo;</code>
concat()
und concat_ws()
sind beide flüchtige Funktionen und daher nicht für die Verwendung in indizierten oder generierten Spalten geeignet. Wenn Unveränderlichkeit erforderlich ist, können Sie eine benutzerdefinierte unveränderliche Funktion erstellen.
Bitte beachten Sie, dass der
-Operator kein gültiger String-Verkettungsoperator in Postgres ist. Es handelt sich um eine einzigartige Ergänzung von Microsofts Produkten.
Das obige ist der detaillierte Inhalt vonWie verkette ich String-Spalten in PostgreSQL-SELECT-Abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!