Convertir un entier en chaîne dans PostgreSQL

Joy Idialu 18 aout 2022
Convertir un entier en chaîne dans PostgreSQL

Ce tutoriel explique comment convertir un entier en chaîne dans PostgreSQL.

Convertir un entier en chaîne dans PostgreSQL

Considérons une table quiz_score qui garde une trace du score de chaque participant à un jeu-questionnaire. Le score est stocké dans cette table sous forme de chaîne et non d’entier.

id player_id score
1 1 54
2 2 72
3 3 52
4 4 55
5 5 93
6 6 72
7 7 55
8 8 64
9 9 87
10 10 81

Voici l’instruction CREATE pour la table :

CREATE TABLE quiz_score
(
    id integer NOT NULL GENERATED ALWAYS AS IDENTITY,
    player_id integer NOT NULL,
    score text NOT NULL,
    CONSTRAINT quiz_score_pkey PRIMARY KEY (id)
);

Et voici l’instruction INSERT pour remplir le tableau avec les données :

INSERT INTO quiz_score (player_id, score)
VALUES
    (1, 54),
    (2, 72),
    (3, 52),
    (4, 55),
    (5, 93),
    (6, 72),
    (7, 55),
    (8, 64),
    (9, 87),
    (10, 81);

Si on nous demande de trouver le ou les joueurs qui ont eu un score spécifique et que ce score qui nous est donné est de type entier et non de type chaîne comme stocké dans la table, une requête comme celle-ci :

SELECT * FROM quiz_score WHERE score = 72;

donnerait l’erreur suivante :

ERROR:  operator does not exist: text = integer
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.

En suivant l’indice donné, nous devrions convertir le score donné, qui est de type entier en chaîne, comme indiqué ici :

SELECT * FROM quiz_score WHERE score = 72::text;

Aucune erreur n’est renvoyée et le résultat est donné comme suit :

id player_id score
2 2 72
6 6 72

Une autre façon de convertir un entier en chaîne est donnée par :

SELECT * FROM quiz_score WHERE score = cast(72 as text);

Ce didacticiel a présenté deux manières de convertir un entier en chaîne.

Article connexe - PostgreSQL String