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

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

Barbara Streisand
Freigeben: 2025-01-12 06:16:47
Original
432 Leute haben es durchsucht

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:
SELECT a::text || b AS ab FROM foo;
Nach dem Login kopieren
  • Texttrennzeichen verwenden:
SELECT a || ', ' || b AS ab FROM foo;
Nach dem Login kopieren

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():
SELECT concat_ws(', ', a, b) AS ab FROM foo;
Nach dem Login kopieren
  • Alternativ können Sie die Funktion concat() für eine trennzeichenfreie Verkettung verwenden:
SELECT concat(a, b) AS ab FROM foo;
Nach dem Login kopieren

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!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage