Convierta un entero en una cadena en PostgreSQL

Joy Idialu 18 agosto 2022
Convierta un entero en una cadena en PostgreSQL

Este tutorial explica cómo convertir un entero en una cadena en PostgreSQL.

Convierta un entero en una cadena en PostgreSQL

Considere una tabla quiz_score que realiza un seguimiento de la puntuación de cada participante en un juego de preguntas. La puntuación se almacena en esta tabla como una cadena, no como un número entero.

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

Aquí está la instrucción CREATE para la tabla:

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)
);

Y aquí está la instrucción INSERT para llenar la tabla con los datos:

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 se nos pide encontrar al jugador o jugadores que tuvieron un puntaje específico y este puntaje que se nos da es de tipo entero y no de tipo cadena como está almacenado en la tabla, una consulta como esta:

SELECT * FROM quiz_score WHERE score = 72;

daría el siguiente error:

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.

Siguiendo la pista dada, tendríamos que convertir la puntuación dada, que es de tipo entero a cadena, como se muestra aquí:

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

No se arroja ningún error, y el resultado se da como:

id player_id score
2 2 72
6 6 72

Otra forma de convertir un entero a una cadena se da como:

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

Este tutorial analizó dos formas de convertir un número entero en una cadena.

Artículo relacionado - PostgreSQL String