PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Concaténer une chaîne et un nombre dans PostgreSQL

PostgreSQL nous propose les méthodes suivantes pour concaténer des chaînes et des nombres :

  • Le CONCAT() fonction, qui concatène ses arguments.
  • L'opérateur de concaténation de canal (|| ), qui concatène ses opérandes.

Exemples de chacun ci-dessous.

Le CONCAT() Fonction

Le CONCAT() la fonction concatène les représentations textuelles de ses arguments.

Exemple :

SELECT CONCAT('Player', 456);

Résultat :

Player456

Nous pouvons inclure un espace, soit en ajoutant un espace à la chaîne existante, soit en concaténant en incluant un troisième argument composé uniquement d'un espace :

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

Résultat :

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

L'opérateur de concaténation de canal (|| )

Cet exemple utilise l'opérateur de concaténation (|| ):

SELECT 'Player ' || 456;

Résultat :

Player 456

Dans ce cas, j'ai ajouté un espace au premier argument.

Concaténation de nombres sans chaîne

Si vous avez besoin de concaténer deux nombres mais pas de chaînes, vous devrez d'abord convertir au moins un des nombres en chaîne. Sinon, une erreur se produit.

Exemple d'erreur :

SELECT 123 || 456;

Résultat :

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.

Voici un moyen rapide de résoudre ce problème :

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

Résultat :

123456