当前位置:   article > 正文

PGSQL数据库中的常用函数_pg 库 coalesce

pg 库 coalesce

一·COALESCE(col,value)

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

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

二·regexp_split_to_table(value,',')

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

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

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

  1. SELECT
  2. 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. 计算1500的累加的结果。
  2. WITH RECURSIVE t(n) AS (
  3. VALUES (1)
  4. UNION ALL
  5. SELECT n+1 FROM t WHERE n < 50
  6. )
  7. SELECT sum(n) FROM t;
  1. #累乘到15
  2. with recursive d(n, fact) as (
  3. values (1,2)
  4. union all
  5. select n+2, (n+1)*fact from d where n < 15)
  6. SELECT * from d;

七·cast()函数

转换类型:将string转换为integer

select cast('1234' as INTEGER) as num

八·序列

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

  1. 添加自增序列
  2. CREATE SEQUENCE 表名_id_seq
  3. START WITH 1
  4. INCREMENT BY 1
  5. NO MINVALUE
  6. NO MAXVALUE
  7. CACHE 1;
  8. 设置表某个字段自增
  9. alter table表名 alter column id set default nextval('表名_id_seq');
  10. 从当前最大id依次递增
  11. select setval('表名_id_seq',(select max(id) from 同一个表名));
  12. 大写字符的表需要加双引号。例如:
  13. select setval('"表名_id_seq"',(select max(id) from "表名"));

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/386760
推荐阅读
  

闽ICP备14008679号