如何在PostgreSQL中将SELECT查询返回的整数结果转换为字符串类型
正确实现方式有以下几种:
- 直接在查询字段上使用CAST语法:
SELECT CAST(count(*) AS text) FROM pg_largeobject;
- 使用PostgreSQL特有的简化类型转换语法
::,写法更简洁:
SELECT count(*)::text FROM pg_largeobject;
- 如果你要使用
to_char()函数,第二个参数传入匹配结果位数的数字格式掩码即可,示例如下:
SELECT to_char(count(*), '999999999999') FROM pg_largeobject;
之前方案报错的原因:
不管是CAST还是to_char(),都不能直接将未包裹的SELECT语句作为参数传入。如果你需要把子查询的结果作为参数传入,需要给子查询额外加一层括号,示例如下(不推荐,不如直接在查询内转换效率高):
SELECT CAST( (SELECT count(*) FROM pg_largeobject) AS text );
之前写的cast(SELECT count(*) from pg_largeobject) as text;缺少子查询的包裹括号,所以触发语法报错。
内容的提问来源于stack exchange,提问作者Leearn2303
相关产品推荐
相关产品推荐

