Heim >Datenbank >MySQL-Tutorial >Wie verkettet man Spalten in PostgreSQL-SELECT-Anweisungen richtig?

Wie verkettet man Spalten in PostgreSQL-SELECT-Anweisungen richtig?

Barbara Streisand
Barbara StreisandOriginal
2025-01-12 06:16:47455Durchsuche

How to Properly Concatenate Columns in PostgreSQL SELECT Statements?

Spalten in einer PostgreSQL-SELECT-Anweisung verbinden

Beim Verketten von Zeichenfolgen in einer PostgreSQL-SELECT-Anweisung können Fehler auftreten, wenn die Spalten nicht explizit in Text konvertiert werden.

Frage:

Die Tabelle foo enthält zwei Zeichenfolgenspalten a und b. Der Versuch, sie mit a || zu verbinden. b oder a || ', ' || b liefert null oder unerwartete Ergebnisse.

Lösung:

Um Zeichenfolgen in Postgres ordnungsgemäß zu verketten, muss mindestens eine Eingabe in Text konvertiert werden. Hier gibt es zwei Möglichkeiten, dies zu tun:

  • Konvertieren Sie eine Spalte in Text:
<code class="language-sql">SELECT a::text || b AS ab FROM foo;</code>
  • Texttrennzeichen verwenden:
<code class="language-sql">SELECT a || ', ' || b AS ab FROM foo;</code>

Hinweis:

  • Die Verwendung des Verkettungsoperators (||) zwischen Nicht-String-Datentypen ist veraltet.
  • Für Fälle, in denen Nullwerte beteiligt sein können und das Ergebnis nicht null sein sollte, verwenden Sie die Funktion concat_ws():
<code class="language-sql">SELECT concat_ws(', ', a, b) AS ab FROM foo;</code>
  • Alternativ können Sie die Funktion concat() für eine trennzeichenfreie Verkettung verwenden:
<code class="language-sql">SELECT concat(a, b) AS ab FROM foo;</code>

Zusätzliche Hinweise:

    • Der
    • -Operator ist in Postgres kein gültiger String-Verkettungsoperator.
  • Die Verwendung des Datentyps „character(n)“ zum Speichern von Zeichenfolgen wird im Allgemeinen nicht empfohlen. Erwägen Sie stattdessen die Verwendung von Text oder Varchar.

Das obige ist der detaillierte Inhalt vonWie verkettet man Spalten in PostgreSQL-SELECT-Anweisungen richtig?. 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