sql >> Databáze >  >> RDS >> PostgreSQL

Spojte řetězec a číslo v PostgreSQL

PostgreSQL nám poskytuje následující způsoby zřetězení řetězců a čísel:

  • CONCAT() funkce, která zřetězí své argumenty.
  • Operátor zřetězení potrubí (|| ), který zřetězí své operandy.

Příklady každého níže.

CONCAT() Funkce

CONCAT() funkce zřetězí textové reprezentace svých argumentů.

Příklad:

SELECT CONCAT('Player', 456);

Výsledek:

Player456

Mezeru můžeme zahrnout buď přidáním mezery k existujícímu řetězci, nebo zřetězením zahrnutím třetího argumentu, který se skládá pouze z mezery:

SELECT 
    CONCAT('Player ', 456) AS "Option 1",
    CONCAT('Player', ' ', 456) AS "Option 2";

Výsledek:

  Option 1  |  Option 2  
------------+------------
 Player 456 | Player 456

Operátor zřetězení potrubí (|| )

Tento příklad používá operátor zřetězení (|| ):

SELECT 'Player ' || 456;

Výsledek:

Player 456

V tomto případě jsem k prvnímu argumentu přidal mezeru.

Zřetězení čísel bez řetězce

Pokud potřebujete zřetězit dvě čísla, ale žádné řetězce, budete muset nejprve přetypovat alespoň jedno z čísel na řetězec. Jinak dojde k chybě.

Příklad chyby:

SELECT 123 || 456;

Výsledek:

ERROR:  operator does not exist: integer || integer
LINE 1: SELECT 123 || 456;
                   ^
HINT:  No operator matches the given name and argument types. You might need to add explicit type casts.

Zde je rychlý způsob, jak tento problém vyřešit:

SELECT CAST(123 AS varchar(3)) || 456;

Výsledek:

123456

  1. Postgres ručně mění sekvenci

  2. Co je MySQL ekvivalentem funkce CHOOSE() SQL Serveru?

  3. Existuje ekvivalent .NET k newsequentialid() serveru SQL Server

  4. Jak funguje funkce JulianDay() v SQLite