赞
踩
coalesce函数是空值替换函数,当某列为空时,用value值替换返回
eg:coalesce('col',0),当col为空时返回0;
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()函数是将数据按字符分割后转换为数组形式
SUBSTRING()有三个参数,第一个是字符串,第二个是从哪里开始,第三个是截取几位
SELECT extract(dow FROM cast(now() as TIMESTAMP))
- 计算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;
转换类型:将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 "表名"));
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。