st_length( st_geographyfromtext( st_astext( st_intersection( ST_MakeValid(a.geom), ST_MakeValid(b.geom) ) ) ) ) AS acrossLength; ---------------------------------------------------------------------------------------------- -1.SQL测试 select * from bs.s_explorationpoint where upper(exppointid) like '%XK0%'; select * from lf.sys_layer where url is not null and serve_type='WMS' and data_type in ('工程项目','工程项目-地灾类','工程项目-测量类','工程项目-洞库类','工程项目-勘察类') order by id; insert into lf.sys_layer (pid,cn_name,en_name,url,type,level,order_num,is_show,create_user,serve_type,data_type,elev) values (423, '地面层', 'fushun_site', 'tileset/o/39HBFG/tileset.json', 2, 3, 5, 0, 1, 'Tileset', '工程测量模型', 1200); select concat(gb, '_', name) from bd.dlg_agnp limit 10; select ST_AsText(geom) "geom", a.*, fn_get_fullname(a.depid, 1) depName, fn_get_fullname(a.dirid, 2) dirName, fn_uname(create_user) createName, fn_uname(update_user) updateName from lf.sys_publish a -- 删除冗余数据,修复tab_guid值 select id,name,path,tab,tab_guid from lf.sys_attach where tab != 'bd.b_borehole' order by id desc limit 200; select * from lf.sys_meta where name='勘探点地层表.xlsx' or type='fbx'; --delete from bs.s_explorationpointstratum where parentid in (select eventid from lf.sys_meta where name='勘探点地层表.xlsx'); --delete from lf.sys_meta where name='勘探点地层表.xlsx'; select * from lf.sys_meta where type = 'tif' or type = 'tiff' or lower(name) in ('平面图索引文件.xlsx', '穿跨越地形图.dwg', '中线成果表.xlsx', '离散点.xlsx', '控制点.xlsx', '地面线.xlsx'); select * from lf.sys_user where uid = 'admin' select * from lf.sys_dep order by id select * from lf.sys_dir where pid=0 select * from lf.sys_apply order by id desc select * from lf.sys_flow order by id desc; -- delete from lf.sys_apply where id > 47; delete from lf.sys_flow where applyid > 47; select * from lf.sys_download order by id desc select st_astext(geom) from bs.s_explorationpoint where exppointid in ('XTCK16') select * from lf.sys_publish order by id desc; select * from lf.sys_download order by id desc limit 20; --downid select * from lf.sys_apply order by id desc; select case a.userid when 2 then guid else null end "guid", a.* from lf.sys_apply a order by id desc select c.relname "tab", cast(obj_description(c.oid) as varchar) "desc", a.attnum "num", a.attname "col", t.typname "type", d.description "bak" from pg_attribute a left join pg_description d on d.objoid = a.attrelid and d.objsubid = a.attnum left join pg_class c on a.attrelid = c.oid left join pg_type t on a.atttypid = t.oid where a.attnum >= 0 and reltype>0 and relnamespace in (5424908) and c.relname='pl_pipelinepoint_f' and position('pg.dropped' in a.attname) = 0 order by c.relname desc, a.attnum asc select * from bs.s_explorationpointstratum where exppointid in ('HJXK20') ---------------------------------------------------------------------------------------------- -1.更新钻孔 select count(*) from bd.b_borehole; -- 357824 select count(*) from lf.sys_attach; -- 357880 = 56 + 357824 select * from bd.b_borehole limit 10; -- 基础钻孔 -- update bd.b_borehole set path = 'Drill\' || path; -- insert into lf.sys_attach (name, guid, path, tab, tab_guid) select substr(path, length(path) - position('\' in reverse(path)) + 2), eventid, path, 'bd.b_borehole', eventid from bd.b_borehole; ---------------------------------------------------------------------------------------------- 00.SQL查询 insert into lf.sys_meta_pub (metaid, pubid) select 1, 1 from (select 1) temp where not exists (select 1 from lf.sys_meta_pub where metaid = 1 and pubid = 1); select * from bd.dlg_agnp where ST_Intersects(geom, ST_Buffer(ST_PointFromText('POINT (100.746244878 35.588071316)', 4326), 10.0 / 1852 / 60)) limit 20; select * from bd.dlg_agnp where ST_Intersects(geom, ST_Buffer(ST_PointFromText('POINT (100.746244878 35.588071316)', 4326), 10.0 * 0.00000899928)) limit 20; select * from bd.dlg_agnp where ST_Intersects(geom, ST_GeomFromText('POLYGON((100.746245 35.588161,100.746167 35.588135,100.746134 35.588071,100.746167 35.588008,100.746245 35.587981,100.746323 35.588008,100.746355 35.588071,100.746323 35.588135,100.746245 35.588161))', 4326) ) select * from bd.dlg_25w_boul where ST_DWithin(geom, ST_GeomFromText('POINT (101.9281 36.58675)', 4490), 10000.0 / 1852 / 60) = true limit 20; select id,cn_name,en_name,url,serve_type,data_type from lf.sys_layer where url is not null and serve_type='WMS' and data_type in ('工程项目','工程项目-地灾类','工程项目-测量类','工程项目-洞库类','工程项目-勘察类') order by id; select modular1,modular2 from lf.sys_operate where modular1 not in ('综合展示','数据质检','数据管理','数据交换','服务管理','系统对接','运维管理'); delete from lf.sys_operate where modular1 not in ('综合展示','数据质检','数据管理','数据交换','服务管理','系统对接','运维管理'); select id,cn_name,elev from lf.sys_layer where cn_name in ('火车站','地下管线','中卫站','庆阳站','地层示例'); select * from lf.sys_user where uid='FME'; select * from lf.sys_token where token='c36e4f94-dfde-401e-9967-2c4a449f1300'; update lf.sys_token set type=1,create_user=61,duration=5256000,create_time='2023-03-03 19:00:00',expire='2033-03-03 19:00:00' where token='c36e4f94-dfde-401e-9967-2c4a449f1300'; select gid, pipename, segname, ST_AsText(ST_LineMerge(geom)) "wkt" from bs.m_pipesegment where pipename is not null and not ST_IsEmpty(geom) order by pipename, segname; ---------------------------------------------------------------------------------------------- 01.创建空间扩展 create extension postgis; create extension pgrouting; create extension postgis_raster; create extension postgis_topology; create extension fuzzystrmatch; create extension postgis_tiger_geocoder; create extension address_standardizer; create extension "uuid-ossp"; select uuid_generate_v4(); -- uuid,36位 select split_part('12.34.56.78', '.', 1); -- 切割 select substr('FY2021', 3, 2); -- 提取 select substr('FY2021', 3); -- 提取 select substring('FY2021' FROM 3 for 2); -- 提取 select position('23' in 'w123456'); -- 位置 select md5(''); -- MD5 select concat('aa', 'bb'); -- 连接 select concat_ws('_', 'a', 'b'); -- 连接 select chr(97); -- ACSII值转字符 select ascii('x'); -- 字符转ACSII值 select to_hex(31); -- 转16进制 select length('aabbcc'); -- 字符长度 select reverse('aabbcc'); -- 反转 select initcap('aabbcc'); -- 首字母大写 select replace('aabbcc', 'bc', 'xy'); -- 替换 select left('abcde', 2); -- 左截取 select right('abcde', 2); -- 右截取 ---------------------------------------------------------------------------------------------- 02.查询连接数 show max_connections; select count(1) from pg_stat_activity; -- 查询表架构和表名 select oid,table_catalog,table_schema,table_name from information_schema.tables t1, pg_class t2 where table_schema = 'bd' and t1."table_name" = t2.relname order by table_catalog,table_schema,table_name; -- 查询字段信息 select e.table_catalog, e.table_schema, c.relname "tab", cast(obj_description(c.oid) as varchar) "desc", a.attnum "num", a.attname "col", d.typname "type", concat_ws('', d.typname, SUBSTRING(format_type(a.atttypid, a.atttypmod) from '(.*)')) "type2", b.description "bak" from pg_attribute a left join pg_description b on b.objoid = a.attrelid and b.objsubid = a.attnum left join pg_class c on a.attrelid = c.oid left join pg_type d on a.atttypid = d.oid left join information_schema.tables e on e.table_name = c.relname where a.attnum >= 0 and reltype > 0 and a.attname = 'updateuser' and d.typname != 'int4' --and relnamespace in (29257,20582) order by c.relname desc, a.attnum asc; select pg_constraint.conname as pk_name,pg_attribute.attname as colname,pg_type.typname as typename from pg_constraint inner join pg_class on pg_constraint.conrelid = pg_class.oid inner join pg_attribute on pg_attribute.attrelid = pg_class.oid and pg_attribute.attnum = pg_constraint.conkey[1] inner join pg_type on pg_type.oid = pg_attribute.atttypid where pg_class.relname = 'sys_user' and pg_constraint.contype='p'; ---------------------------------------------------------------------------------------------- 03.查询 select depid from bd.dlg_25w_boul where depid > 0 and depid != ALL(fn_rec_array(38, 'dep')) and ST_Intersects(geom, ST_PolygonFromText('POLYGON ((115.94927385452 32.3754479115071 0,121.989371092554 32.2766788010181 0,121.850621222894 29.6874200067864 0,115.9727267226 29.7835368627922 0,115.94927385452 32.3754479115071 0))', 4490)) group by depid; select * from lf.sys_dir where id in (select min(id) from lf.sys_dir where name in ('测量(ESV)','勘察(EGE)','地灾(EGD)','洞库(EGD)') group by name); select * from lf.sys_dir where pid = 1; select * from lf.sys_dir order by id; select * from lf.sys_token where create_time >= '2022-09-29' and create_time <= '2022-09-30'; select * from lf.sys_token where to_char(create_time,'yyyy-MM-dd') = '2022-09-30'; select fn_rec_query(depid,'dep') depName,fn_rec_query(dirid,'dir') dirName,fn_ver(verid) verName,fn_uname(createuser) createName,fn_uname(updateuser) updateName from bd.dlg_agnp limit 5; select ns,tab from lf.sys_dict a where not exists (select id from lf.sys_dict b where b.ns=a.ns and b.tab=a.tab and b.field='gid') group by ns,tab; -- 查询字典中不存在gid的表 ----------------------------------------------------------------------------------------------