在 PostgreSQL 中將整數轉換為字串

Joy Idialu 2022年7月18日
在 PostgreSQL 中將整數轉換為字串

本教程討論如何在 PostgreSQL 中將整數轉換為字串。

在 PostgreSQL 中將整數轉換為字串

考慮一個 quiz_score 表,它記錄了問答遊戲中每個參與者的分數。分數作為字串而不是整數儲存在此表中。

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

下面是表的 CREATE 語句:

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

這是用資料填充表的 INSERT 語句:

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

如果我們被要求找到一個或多個有特定分數的球員,而我們得到的這個分數是整數型別而不是儲存在表中的字串型別,這樣的查詢:

SELECT * FROM quiz_score WHERE score = 72;

會給出以下錯誤:

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.

按照給出的提示,我們必須將給定的分數(整數型別)轉換為字串,如下所示:

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

沒有丟擲錯誤,結果如下:

id player_id score
2 2 72
6 6 72

將整數轉換為字串的另一種方法如下:

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

本教程討論了將整數轉換為字串的兩種方法。

相關文章 - PostgreSQL String