在 PostgreSQL 中將整數轉換為字串
Joy Idialu
2022年7月18日
本教程討論如何在 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);
本教程討論了將整數轉換為字串的兩種方法。