首页 > 数据库 >PostgreSQL 常用函数(一)

PostgreSQL 常用函数(一)

时间:2023-07-17 12:56:18浏览次数:29  
标签:常用 PostgreSQL 函数 -- SELECT 字符串 dp string

函数(function)是一些预定义好的代码模块,可以将输入进行计算和处理,最终输出一个结果值。PostgreSQL函数可以分为两类:标量函数(scalar function)和聚合函数(aggregation function)。标量函数针对每个输入都会返回相应的结果,聚合函数针对一组输入汇总出一个结果。为了便于学习,可以将常见的系统函数分为以下类别:数学函数、字符函数、日期时间函数以及类型转换函数。除了可以使用这些系统内置的函数之外,PostgreSQL也支持创建自定义的函数(UDF)。

数学函数

数学函数和运算符用于执行算术运算,输入和输出通常都是数字类型。

绝对值

abs(x)函数用于计算x的绝对值。例如:

select abs(-2.2) --2.2

取整函数

ceil(dp)/ceiling(dp)函数用于计算大于或等于dp的最小整数;floor(dp)函数用于计算小于或等于dp的最大整数;round(dp)函数四舍五入为整数;trunc(dp)函数向零取整。 

SELECT ceil(-42.8),--大于 -42.8 的最小整数
       floor(-42.8),--小于 -42.8 的最小整数
       round(12.45), --12 四舍五入取整数
       trunc(12.8), --12 截取整数
       round(12.488, 2), --12.49 保留2位小数
       trunc(12.488, 2);-- 12.48取2位小数,直接截取,不是四舍五入

乘方与开方

power(a, b)函数计算a的b次方;sqrt(dp)函数计算dp的平方根;cbrt(dp)函数计算dp的立方根

SELECT power(2, 3),--8
       sqrt(4), --2
       cbrt(27)  --3.0000000000000004

指数与对数

exp(dp)函数计算以自然常数e为底的指数,ln(dp)函数计算以自然常数e为底数的对数,log(dp)/log10(dp)函数计算以10为底的对数,log(b, x)函数计算以b为底的对数。
       SELECT exp(1.0), -- 2.7182818284590452
              ln(2.718281828459045), -- 0.9999999999999999
              log(100), --2
              log(2.0, 16.0);--4

整数商和余数

div(y, x)函数计算y除以x的整数商,mod(y, x)函数计算y除以x的余数。

              SELECT div(9,4), -- 2
                     mod(9,4); --1

弧度与角度

degrees(dp)函数用于将弧度转为角度,radians(dp)函数用于将角度转弧度。

SELECT degrees(1.57),--89.95437383553924
       radians(90.0); --1.5707963267948966

常量π

pi()函数用于返回常量“π”的值。

SELECT pi();--3.141592653589793

符号函数

sign(dp)函数返回参数的正负号,可能的结果为-1、0、+1

SELECT sign(8.4) --1
     , sign(-2)  ---1
     , sign(0.4) --1
     , sign(0.000) --0

生成随机数

PostgreSQL提供了用于返回一个随机数的函数random()。

SELECT random(), --0.007556789489307825
       random() ;-- 0.6077545699183775

setseed(dp)函数可以为随后一次运行的random()函数设置种子数,范围:-1.0 <= dp <= 1.0

SELECT setseed(0);
SELECT random()

字符串函数

字符串连接

concat(str, ...)函数用于连接字符串,并且忽略其中的NULL参数;concat_ws(sep, str, ...)函数使用指定分隔符sep连接字符串。

SELECT concat(11, NULL, 22),--1122
       concat_ws(' and ', 2, NULL, 22);-- 2 and 22

两个竖杠(||)也可以用于连接字符串,但是NULL参数将会返回NULL。

 SELECT 'Post'||'greSQL',-- PostgreSQL
        'Post'||NULL||'greSQL' ---null;

字符串长度

bit_length(string)函数用于计算字符串包含的比特数;length(string)、char_length(string)、character_length(string)函数计算字符串包含的字符数;octet_length(string)函数计算字符串包含的字节数。

SELECT bit_length('jose'),--32
       length('jose'), --4
       octet_length('jose'); --4
SELECT bit_length('笑傲'),--48
       length('江湖'), --2
       octet_length('哈哈'); --6

大小写转换

lower(string)函数将字符串转换为小写形式,upper(string)函数将字符串转换为大写形式,initcap(string)函数将每个单词的首字母大写,其他字母小写

SELECT lower('Jack'), --jack
       upper('ali'),  --ALI
       initcap('Ali BaBa'); --Ali Baba

子串查找与替换

substring(string [FROM] [for])函数用于提取从位置FROM开始的for个字符子串,位置从1开始计算。substr(string, FROM[, count])的作用相同。

SELECT substring('nihao' FROM 2 for 3),--iha
         substr('xiaofeng',2, 3); --iao

translate(string , FROM, to)函数将字符串string中出现在FROM中的字符串替换成to中相应位置的字符。如果FROM长度大于to,在to中没有对应值的字符将被删除

SELECT translate('12345', '143', 'ax');--a2x5

字符串拆分

 regexp_split_to_table(string, pattern[, flags])函数用于拆分字符串,使用POSIX正则表达式作为分隔符。函数的返回类型是text集合 

SELECT regexp_split_to_table('hello 晓枫', '\s+');
hello
晓枫

split_part(string, delimiter, field)函数使用delimiter拆分字符串,并返回指定项(从1开始计数)

SELECT split_part('abc#~def#~ghi', '#~', 2);--def

字符串反转

reverse(str)函数用于将字符串反转

SELECT reverse('读书好') --好书读

标签:常用,PostgreSQL,函数,--,SELECT,字符串,dp,string
From: https://www.cnblogs.com/wdh01/p/17235068.html

相关文章

  • mysql截取字符串函数 --九五小庞
    一、mysql截取字符串函数1、left(str,length)从左边截取length2、right(str,length)从右边截取length3、substring(str,index)当index>0从左边开始截取直到结束 当index<0从右边开始截取直到结束 当index=0返回空4、substring(str,index,len)截取str,从index开始,截取len......
  • 重构代码好方法之函数式编程
    在日常编码中,总会出现不同功能有相似之处,比如Session的连接与关闭啊,等等等等为了整理代码以获取眼睛的纯净,可以使用函数式编码步骤:重要的事说一遍第一步:定义函数式接口第二步:定义模板方法第三步:传递lambda表达式创建函数式接口@FunctionalInterfacepublicinterfaceDb......
  • linux常用命令-ls
    ls命令是list的简写,作用是列出当前目录下的文件。一般用ls和ll即可无需参数常用参数:ls-a列出目录所有文件,包含以.开始的隐藏文件ls-A列出除.及..的其他文件ls-r反序排列ls-t以文件修改时间排序ls-S以文件大小排序ls-h以易读大小显示ls-l除了文件名外,还将......
  • uni-app http.js 请求封装(构造函数版本)
    import{getToken,removeToken}from"./auth.js"importconfigfrom'./config.js'//默认配置constDEFAULT_CONFIG={baseUrl:process.env.NODE_ENV==='development'?config.url_qa_api:config.url_online_api,//这里是自定......
  • WPF-Datagrid常用
    列标题居中和单元格内容居中 <!--DataGrid列标题居中方法--><Stylex:Key="ColumnHeaderStyle"TargetType="DataGridColumnHeader"><SetterProperty="HorizontalContentAlignment"Value="Center"/&......
  • Prometheus常用查询
    Prometheus常用查询集群指标#CPU核心总数sum(machine_cpu_cores{cluster="$cluster",job="kubelet"})by(cluster)#CPU请求总数sum(kube_pod_container_resource_requests{cluster="$cluster",job="kube-state-metrics",unit="core"......
  • Linux网络配置常用的基础命令(面试也经常提到)
    Linux网络配置常用的基础命令原创 weijishu 微技术之家 2023-07-1407:07 发表于上海通常情况下,不管什么操作系统,配置IP地址分为如下两类:动态DHCP模式:系统默认是DHCP也就是动态获取IP地址,这种有个坏处就是IP地址会经常变换。如果用连接工具的话,IP地址改变之后需要重......
  • 常用语言的线程模型(Java、go、C++、python3)
    背景知识软件是如何驱动硬件的?硬件是需要相关的驱动程序才能执行,而驱动程序是安装在操作系统内核中。如果写了一个程序A,A程序想操作硬件工作,首先需要进行系统调用,由内核去找对应的驱动程序驱使硬件工作。而驱动程序怎么让硬件工作的呢?驱动程序作为硬件和操作系统之间的媒介,可以......
  • Docker CLI docker container ls 常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • LVS实战-DR模式配置(常用、重点掌握)
    LVS实战-DR模式配置(常用、重点掌握)原创 Cloud研习社 Cloud研习社 2023-07-1511:36 发表于山东收录于合集#一站式教程260个#LVS9个#计算机230个#云计算266个#linux274个教程每周二、四、六更新虚拟IP地址在RS和DS(即LVS服务器)上都要配置。DS的虚拟IP地......