PGSQL数据库中的常用函数

一·COALESCE(col,value)

coalesce函数是空值替换函数,当某列为空时,用value值替换返回

eg:coalesce('col',0),当col为空时返回0;

二·regexp_split_to_table(value,',')

regexp_split_to_table()函数是利用正则表达式将字符串分割为表格,对指定值进行分割

SELECT
	REGEXP_SPLIT_TO_TABLE( '1,2,3,4,5,6', ',' ) AS num,
	REGEXP_SPLIT_TO_TABLE( '1。2。3。4。5。6', '。' ) AS test

其中分割字符需要是正则表达式中支持的字符才能分割,当使用|时会出现分割错误的情况,需要使用转移字符来解决

SELECT
  REGEXP_SPLIT_TO_TABLE('1|2|3|4|5|6', E'\\|') AS test;

三·REGEXP_SPLIT_TO_ARRAY(value,',')

REGEXP_SPLIT_TO_ARRAY()函数是将数据按字符分割后转换为数组形式

四· SUBSTRING(value from n1 for n2)

SUBSTRING()有三个参数,第一个是字符串,第二个是从哪里开始,第三个是截取几位

 五·获取当前时间是星期几

SELECT extract(dow FROM cast(now() as TIMESTAMP))

六·WITH RECURSIVE递归函数

计算1到500的累加的结果。
WITH RECURSIVE t(n) AS (
    VALUES (1)
  UNION ALL
    SELECT n+1 FROM t WHERE n < 50
)
SELECT sum(n) FROM t;
#累乘到15
with recursive d(n, fact) as (
values (1,2)
union all
select n+2, (n+1)*fact from d where n < 15)
SELECT * from d;

七·cast()函数

转换类型:将string转换为integer

select cast('1234' as INTEGER) as num

八·序列

PostgreSQL中的序列可以当作MySQL中的auto_increment来使用,但是序列并不是仅仅用于自增列

添加自增序列
CREATE SEQUENCE 表名_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;


设置表某个字段自增
alter table表名 alter column id set default nextval('表名_id_seq');

从当前最大id依次递增
select setval('表名_id_seq',(select max(id) from 同一个表名));

大写字符的表需要加双引号。例如:
select setval('"表名_id_seq"',(select max(id) from "表名"));

 九·Oracle数据库查看所有表名以及数据量

SELECT  table_name, num_rowsFROM all_tablesWHERE owner = '这里写数据库用户名';

十·达梦数据库

设置字段为主键

alter table "MY_TABLE" add primary key("ID"); 

修改字段类型

alter table KF.BASE_CASE modify(CASE_NAME text )

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值