浅谈 PostgreSQL 类型转换

类似Oracle ,PostgreSQL也有强大的类型转换函数, 下面仅举两个类型转换例子。

例子

1
2
3
4
5
postgres=# select 1/4;  
?column?
----------
0
(1 row)

在PG里如果想做除法并想保留小数,用上面的方法却行不通,因为”/“ 运算结果为取整,并且会截掉小数部分。

通过操作符类型转换

常见的类型转换方法是通过操作符::进行类型转换,如下:

1
2
3
4
5
postgres=# select round(1::numeric/4::numeric,2);  
round
-------
0.25
(1 row)

备注:类型转换后,就能保留小数部分了。

1
2
3
4
francs=> select oid,relname,reltuples from pg_class where oid='test_1'::regclass;
oid | relname | reltuples
-------+---------+-----------
16416 | test_1 | 6

备注: ‘test_1’::regclass 这里将表名转换成表的 oid,其它用法参考本文属的附二。

通过 cast 函数类型转换

1
2
3
4
5
postgres=# select round( cast ( 1 as numeric )/ cast( 4 as numeric),2);  
round
-------
0.25
(1 row)

关于 cast 函数的用法

1
2
3
4
5
postgres=# SELECT substr(CAST (1234 AS text), 3,1);  
substr
--------
3
(1 row)

附一: PostgreSQL 类型转换函数

浅谈 PostgreSQL 类型转换

附二: Object Identifier Types

浅谈 PostgreSQL 类型转换

原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/236397.html

(0)
上一篇 2022年1月24日
下一篇 2022年1月24日

相关推荐

发表回复

登录后才能评论