在 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
语句:
CREATETABLEquiz_score(idintegerNOTNULLGENERATEDALWAYSASIDENTITY,player_idintegerNOTNULL,scoretextNOTNULL,CONSTRAINTquiz_score_pkeyPRIMARYKEY(id));
这是用数据填充表的 INSERT
语句:
INSERTINTOquiz_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*FROMquiz_scoreWHEREscore=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*FROMquiz_scoreWHEREscore=72::text;
没有抛出错误,结果如下:
id | player_id | score |
---|---|---|
2 | 2 | 72 |
6 | 6 | 72 |
将整数转换为字符串的另一种方法如下:
SELECT*FROMquiz_scoreWHEREscore=cast(72astext);
本教程讨论了将整数转换为字符串的两种方法。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。