PostGresql 实现四舍五入、小数转换、百分比的用法说明
需求:两个整数相除,保留两位小数并四舍五入,完了转成百分比形式,即4/5=0.80=80%
1.两个整数相除:
idn_dw=> select 4/5; ?column? ---------- 0 (1 row)
在sql运算中,"/"意思是相除取整,这样小数部分就会被舍去。
2.用cast将被除数转成小数
idn_dw=> select cast(4 as numeric)/5; ?column? ------------------------ 0.80000000000000000000 (1 row)
也可以简化:pg中"::"是转换的意思
idn_dw=> select 4::numeric/5; ?column? ------------------------ 0.80000000000000000000 (1 row)
3.四舍五入,保留两位小数
idn_dw=> select round(cast(4 as numeric)/5,2); round ------- 0.80 (1 row)
4.放大100,转成百分比形式
idn_dw=> select concat(round(4::numeric/5,2)*100,'%'); concat -------- 80.00% (1 row)
但是,小数部分不需要,调整一下顺序
idn_dw=> select concat(round(4::numeric/5*100),'%'); concat -------- 80% (1 row)
完事。
补充:使用postgresql的round()四舍五入函数报错
需求:
使用postgresql的round()四舍五入保留两位小数
报错:
HINT: No function matches the given name and argument types. You might
解决方案:
使用cast函数将需要四舍五入的值转为 numeric,转为其他的类型可能会报错
示例:
round(cast(计算结果) as numeric), 2)
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
postgresql 中round函数的用法说明
round函数是去小数点,我查过好多方法并不好用,于是有了 round(cast(a/b as numeric), 2) 这个就可以用,要加个cast才可以的 补充:postgresql中to_char和round的混合使用 在postgresql中大家都用过round吧,当遇到小数的时候该如何显示呢?看例子 SELECT to_char(round(127 * 0.1 / 67543,6)*10000,'90.99') 1.88 SELECT to_char(round(127 * 0.1 /
-
聊聊PostgreSql table和磁盘文件的映射关系
在postgresql中 Drop table会不会释放磁盘空间,今日以实操来见证 --2019-01-11 09:49:21 drop table 会不会释放空间 create table tab_todrop(id int,cname varchar(50),remark text); insert into tab_todrop select generate_series(1,10000000),'wx good boy',md5('wx good boy'); insert into
-
postgresql查询自动将大写的名称转换为小写的案例
我就废话不多说了,大家还是直接看代码吧~ SELECT sum(aa) as "recordNumber" FROM table SELECT sum(aa) as recordNumber FROM table postgis查询字段是将字段字段转为小写,如果需要大写的字符,需要加双引号 补充:Postgresql中表名.列名.用户名大小写问题 注意:是双引号,单引号可能会被解析成普通字符,因而是不识别的字段 highgo=# create table "ExChange&
-
Postgresql 数据库转义字符操作
产生问题 Postgresql数据库运行下面insert命令 insert into mapping_mac_brand(_id,mac,brand) values(777,'D86595','Toy\'s Myth Inc.') 提示下面的警告: Warning: nonstandard use of \' in a string literal HINT: Use '' to write quotes in strings or use the escape string syntax(E.
-
基于PostgreSql 别名区分大小写的问题
PostgreSql是区分大小写的 如果别名的大小不一致就会提示错误: SELECT * FROM ( SELECT cpi."product_item_id" "PRODUCT_ITEM_ID" FROM prd.up_product_item cpi ) a WHERE a.PRODUCT_ITEM_ID=1 一个很简单的子查询,但是会出错,虽然从语句上看大小写是一致的,但是内部查询中还是使用了小写.PostgreSql对于大写都需要加上双引号的,不然还是视作小
-
解决postgresql 数据库 update更新慢的原因
;大约140000条数据) 竟然运行了一个小时还没有完成 下面是我的几点解决方案 我的update 语句 是从一个临时表更新值到另一个正式表 因为具体数据需要保密,我就不截图了 只说说大体思路,与方法 1.查看语句是否有问题 复制俩个一模一样的表 和数据 手动执行语句 发现不到一分钟就运行成功了 这样就可以确认语句没有问题 2.查找影响updata的因素 我的第一反应是不是有锁 有锁的情况会导致等待或者死锁 查询锁 select w1.pid as 等待进程, w1.mode as 等待锁模式,
-
PostGresql 实现四舍五入、小数转换、百分比的用法说明
需求:两个整数相除,保留两位小数并四舍五入,完了转成百分比形式,即4/5=0.80=80% 1.两个整数相除: idn_dw=> select 4/5; ?column? ---------- 0 (1 row) 在sql运算中,"/"意思是相除取整,这样小数部分就会被舍去. 2.用cast将被除数转成小数 idn_dw=> select cast(4 as numeric)/5; ?column? ------------------------ 0.8000000000
-
js中小数转换整数的方法
JS小数转为整数 floor:下退 Math.floor(12.9999) = 12 ceil:上进 Math.ceil(12.1) = 13; round: 四舍五入 Math.round(12.5) = 13 Math.round(12.4) = 12
-
MapStruct实体间转换的简单用法
摘要: 在实际项目中,我们经常需要将PO转DTO.DTO转PO等一些实体间的转换.比较出名的有BeanUtil 和ModelMapper等,它们使用简单,但是在稍显复杂的业务场景下力不从心.MapStruct这个插件可以用来处理domin实体类与model类的属性映射,可配置性强. 建立Maven项目 MapStruct需要醒目构建工具(如Maven)支持,如果项目结构不标准,可能无法生成对应的转换类.这里我使用Maven构建工程. <properties> <org.mapstruct
-
Postgresql中LIKE和ILIKE操作符的用法详解
LIKE和ILIKE操作符可以模糊匹配字符串,LIKE是一般用法,ILIKE匹配时则不区分字符串的大小写. 它们需要结合通配符使用,下面介绍两种常用的通配符. %:百分号用于匹配字符串序列,可匹配任意组合: _:下划线用于匹配任何单一字符. 举例来说明LIKE和ILIKE操作符的区别. 先创建一张数据表table1,包含两列:id列和name列,代码如下: create table table1(id int, name varchar); insert into table1 values(1
-
postgresql中wal_level的三个参数用法说明
wal_level中有三个主要的参数:minimal.archive和hot_standby 1.minimal是默认的值,它仅写入崩溃或者突发关机时所需要的信息(不建议使用). 2.archive是增加wal归档所需的日志(最常用). 3.hot_standby是在备用服务器上增加了运行只读查询所需的信息,一般实在流复制的时候使用到. 补充:postgresql WAL相关参数 配置文件 # - Settings - wal_level = minimal # minimal, replica
-
Postgresql 跨库同步表及postgres_fdw的用法说明
postgres_fdw模块 PostgreSQL 9.3 add postgres_fdw extension for accessing remote tables PostgreSQL 9.3新增了一个postgres_fdw模块, 已经整合在源码包中. 用于创建postgres外部表. 注:db_des为目标库,developer_month_orders_data为表名.意思就是从查询库a中建立同名FOREIGN关联表, 可以查询目标库中的数据.以下命令在需要建立的关联库中执行. 目标
-
postgresql 中的几个 timeout参数 用法说明
今天整理了下 postgresql 几个 timeout 参数 select version(); version --------------------------------------------------------------------------------------------------------- PostgreSQL 10.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat
-
postgresql 中的加密扩展插件pgcrypto用法说明
近期测试了一下postgresql的加密扩展插件pgcrypto的aes加密 安装加密扩展插件:pgcrypto 在主节点上安装 create extension pgcrypto; aes加解密函数简单介绍 encrypt(data bytea, key bytea, type text) --加密 decrypt(data bytea, key bytea, type text) --解密 data 是需要加密的数据:type 用于指定加密方法 ASE方式加密: select encrypt
-
深入解读PostgreSQL中的序列及其相关函数的用法
一.简介 序列对象(也叫序列生成器)就是用CREATE SEQUENCE 创建的特殊的单行表.一个序列对象通常用于为行或者表生成唯一的标识符. 二.创建序列 方法一:直接在表中指定字段类型为serial 类型 david=# create table tbl_xulie ( david(# id serial, david(# name text); NOTICE: CREATE TABLE will create implicit sequence "tbl_xulie_id_seq"
-
如何编写一个小数转换分数的函数?
Public Function XtoF(str As Currency, Optional fenm As Integer = 32) As String ' 只限于整除分数. Dim Cfm As Currency Dim cfmmod As Integer On Error GoTo Erroreof Cfm = 1 / fenm XtoF = "" If str = 0 Then XtoF = "": Exit Function Dim point
随机推荐
- 在Ubuntu上面安装VMware Workstation教程
- mysql 动态生成测试数据
- ASP生成静态htm页面基本代码
- JavaScript中使用sencha gridpanel 编辑单元格、改变单元格颜色
- director.js实现前端路由使用实例
- JS打开新窗口防止被浏览器阻止的方法
- Oracle中serveroutput参数一次设置永久保存方法
- JavaScript中最简洁的编码html字符串的方法
- 用穿越火线快速入门php面向对象
- 一个简单安全的PHP验证码类、PHP验证码
- jsp中URL传递中文参数的处理方法
- Android通讯录开发之删除功能的实现方法
- asp 防盗链代码(彻底屏蔽迅雷,旋风,快车下载站内资源)
- Windows下安装Apache 2.2.21图文教程
- 腾讯云主机安装LNMP环境及wordpress教程
- 保存网页图片的八种方法小结
- Nginx中配置过滤爬虫的User-Agent的简单方法
- 关于Apache默认编码错误 导致网站乱码的解决方案
- VC++实现的OpenGL线性渐变色绘制操作示例
- Java的Struts框架中配置国际化的资源存储的要点解析