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]);
unnest
1 2 4
(3 行记录)
mrapp=# select unnest(array[1,4]) intersect select unnest(array[2,3,4]);
unnest
2 4
(2 行记录)
mrapp=# select array(select unnest(array[1,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
1
2
3
(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,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