PostgreSQL高级sql积累

1:----查询postgresql数据中系统表与自己建立表结构做了个对比

select cl.relname,att.attname,att.atttypid,f.* from pg_class cl

LEFT JOIN pg_attribute att on att.attrelid = cl.oid

LEFT JOIN td_f_field_info f on f.party_table_name=cl.relname and f.field_name=att.attname

-- LEFT JOIN pg_type t on

where cl.relname like 'dpm%'

and att.attname not like '........pg%'

and cl.relname not like '%pkey%'

and f.id is null

and att.attnum>0

ORDER BY cl.relname;

2:------

SELECT f.* from td_f_step_table_rel r

LEFT JOIN td_f_table_info t on r.table_id=t.id

LEFT JOIN td_f_field_info f on t.party_table_name=f.party_table_name

where r.flow_step_id='2' and r.flow_sub_step_id='4' ORDER BY t.party_table_name;

3:将表dpm_5_base_person中的数据 循环添加进 td_f_field_info

INSERT into td_f_field_info(id,party_table_name,field_name,data_type,description )

(select uuid_generate_v1(),cl.relname,att.attname,t.typname,col_description(att.attrelid,att.attnum) from pg_class cl

LEFT JOIN pg_attribute att on att.attrelid = cl.oid

LEFT JOIN td_f_field_info f on f.party_table_name=cl.relname and f.field_name=att.attname

LEFT JOIN pg_type t on att.atttypid=t.oid

where cl.relname like 'dpm_5_base_person'

and att.attname not like '........pg%'

and cl.relname not like '%pkey%'

and f.id is null

and att.attnum>0

ORDER BY cl.relname) ;

4:-- 将表字段存在但是field_info中不存在的字段插入到field_info中

INSERT into td_f_field_info(id,party_table_name,field_name,data_type,description, is_null,max_length )

(select uuid_generate_v1(),cl.relname,att.attname,t.typname,col_description(att.attrelid,att.attnum),

(case att.attnotnull when 't' then '0' else '1' end),

(CASE WHEN att.atttypmod >=4 THEN att.atttypmod- 4 WHEN att.atttypmod

from pg_class cl

LEFT JOIN pg_attribute att on att.attrelid = cl.oid

LEFT JOIN td_f_field_info f on f.party_table_name=cl.relname and f.field_name=att.attname

LEFT JOIN pg_type t on att.atttypid=t.oid

where cl.relname like 'dpm_2_6_inspect_option%'

and att.attname not like '........pg%'

and cl.relname not like '%pkey%'

and f.id is null

and att.attnum>0

ORDER BY cl.relname) ;

5:postgreSql中char类型的数据,如果长度设为8 不足8个字符的字符串会自动补空格 比如值为'123' 存到数据库里实际为'123 '

6:INSERT INTO "public"."td_f_approve_defined" ("task_id", "step_id", "step_name", "sub_step_id", "sub_step_name", "approve_role", "update_date", "update_by", "level", "version", "person_name", "create_by", "create_date", "del_flag") VALUES ('2', '1', '申请入党', '2', '党组织谈话', '4', '2018-05-07 13:50:39', '11', '1', '1', '11', '1', '2018-05-07 13:51:00', '0');

添加td_f_approval_define 表中数据

7:select * from tf_f_org where length(code)=18

select * from tf_f_org where length(code)=24 and org_name like '%海洋%'

--梁山县

select * from tf_f_org where length(code)=24 and code LIKE '000002000008000011%'

--中共青岛经济技术开发区工作委员会

select * from tf_f_org where length(code)=24 and parent_id='d367736e-57de-11e7-b7aa-0050569a68e4';

SELECT * FROM "public"."tf_f_org" WHERE "org_name" LIKE '%潍坊滨海经济技术开发区%' LIMIT 1000 OFFSET 0

汇总 单项汇总

相关推荐
点云SLAM3 小时前
BOOS库中Graph模块boost::edge_reverse_t和boost::vertex_color_t解读
数据库·edge·图论·bfs·dfs/拓扑排序·boost库、
尽兴-3 小时前
《深入剖析:全面理解 MySQL 的架构设计》
数据库·mysql·数据库架构设计·理解mysql架构
在风中的意志3 小时前
[数据库SQL] [leetcode] 2388. 将表中的空值更改为前一个值
数据库·sql·leetcode
梦幻通灵4 小时前
Mysql字段判空实用技巧
android·数据库·mysql
酸菜牛肉汤面5 小时前
23、varchar与char的区别
数据库
AI题库5 小时前
PostgreSQL 18 从新手到大师:实战指南 - 2.5 Serverless PostgreSQL
数据库·postgresql·serverless
IT技术分享社区5 小时前
数据库实战:MySQL多表更新JOIN操作的底层原理与性能调优指南
数据库·mysql·程序员
廋到被风吹走6 小时前
【数据库】【Oracle】分区表与大表设计
数据库·oracle
UrSpecial6 小时前
InnoDB存储引擎
数据库·mysql
gjc5927 小时前
MySQL隐蔽 BUG:组合条件查询无故返回空集?深度排查与规避方案
android·数据库·mysql·bug