Postgresql中常用小语法

1. PG 中测试可能需要循环插入N多数据 这时候写function等就比较麻烦 我们可以用 generate_series 来

example:

mrapp=# create table test_series(id int) ;
CREATE TABLE
mrapp=# insert into test_series(id) select generate_series(1,100000);
INSERT 0 100000
mrapp=# select count(1) from test_series;


100000
(1 行记录)

2. postgresql 中比较两个字符串中重叠的数量

我们先将array转换为行数据 然后和另一个转换过的array进行去重 然后再拼为数组即可

example:

mrapp=# select unnest(array[1,2,4]);
mrapp=# select unnest(array[1,2,4]) intersect select unnest(array[2,3,4]);
mrapp=# select array(select unnest(array[1,2,4]) intersect select unnest(array[2,3,4]));
array

{2,4}

(1 行记录)

3. postgresql 列转数组

可以用array_agg 函数来处理
example :

mrapp=# select 1 as a union select 2 as a union select 3 as a;
a

(3 行记录)

mrapp=# select array_agg(t.a) from (select 1 as a union select 2 as a union select 3 as a) as t;
array_agg

{1,2,3}
(1 行记录)

4. PG中 类型转换

有时候在postgresql中需要对值的类型进行转换,pg中提供的方法

example : select ‘33’:: integer

example2: select case(‘33’ as integer)

5. pg中的行号 (类似于oracle中的 rownum)

example : select row_number() over() , * from XXXX

6. pg 中查询中的列转数组

example : select array_agg(AAAAA) FROM XXXXX

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值