赞
踩
select string_agg(field)
1.一行数据中的 多字段值根据连接符拼接
concat_ws(':',aaa,bbb) 或者 ||
2.几行数据中的 同一 单字段值根据连接符拼接
string_agg(ccc,' \r\n ')
3.如果要将多个字段的值拼接成一个:
string_agg(concat_ws(':',aaa,bbb),' \r\n ' order by aaa asc) as xxx
SELECT 'SELECT ' || array_to_string(ARRAY(SELECT 'o' || '.' || c.column_name
FROM information_schema.columns As c
WHERE table_name = '$tablename'
AND c.column_name NOT IN('createdat', 'updatedat', 'deletedat','geom')
), ',') || ',ST_AsText (geom) AS geom FROM $tablename As o WHERE o.deletedat IS NULL' As sqlstr
https://blog.csdn.net/snn1410/article/details/7741283
SELECT coalesce(wendushis,'') as wendushis,coalesce(yalishis,'') as yalishis,coalesce(yeweiss,'') as yeweiss,coalesce(liuliang,'') as liuliang FROM equip_risksource where deletedat is NULL AND equipid = '$equipid'
-- Extension: "uuid-ossp"
-- DROP EXTENSION "uuid-ossp";
CREATE EXTENSION uuid-ossp
SCHEMA public
VERSION "1.0";
使用时 字段默认值为 uuid_generate_v4()
CREATE OR REPLACE FUNCTION "public"."new_guid"() RETURNS "pg_catalog"."varchar" AS $BODY$ DECLARE v_seed_value varchar(32); BEGIN select md5( inet_client_addr()::varchar || timeofday() || inet_server_addr()::varchar || to_hex(inet_client_port()) ) into v_seed_value; return (substr(v_seed_value,1,8) || '-' || substr(v_seed_value,9,4) || '-' || substr(v_seed_value,13,4) || '-' || substr(v_seed_value,17,4) || '-' || substr(v_seed_value,21,12)); END; $BODY$ LANGUAGE 'plpgsql' VOLATILE SECURITY DEFINER COST 100 ; ALTER FUNCTION "public"."new_guid"() OWNER TO "postgres";
TRUNCATE tablename RESTART IDENTITY
SELECT column-list
FROM table_name
WHERE [conditions ]
GROUP BY column1, column2....columnN
ORDER BY column1, column2....columnN
alter table equip_pipelinemanager add column texturemateria VARCHAR(100);
COMMENT ON COLUMN equip_pipelinemanager.texturemateria IS '管线材质';
ALTER TABLE equip_risk alter status type int USING status::int;
SELECT col_description(a.attrelid,a.attnum) as comment,format_type(a.atttypid,a.atttypmod) as type,a.attname as name, a.attnotnull as notnull FROM pg_class as c,pg_attribute as a where c.relname = 'equip_linemanagement' and a.attrelid = c.oid and a.attnum>0
创建:createdb -U postgres -h 127.0.0.1 -p 5432 -e base_equipment
删除:dropdb -U postgres -h 127.0.0.1 -p 5432 -e base_equipment
导入:psql -h 127.0.0.1 -p 5432 -d base_equipment -U postgres -f F:\sqldata\jilin\base_equipment.sql
导出:pg_dump -U postgres -h 127.0.0.1 -p 5432 -f F:\sqldata\jilin\base_equipment.sql base_equipment
INSERT INTO public_user (SELECT useraccount, password, username, userlevel,NULL,NULL,now(),now(),deletedat,userid,useraccount,'001' FROM pub_user)
UPDATE tb1 SET c1=b.c1 c2=b.c2 FROM b WHERE tb1.c3 = b.c3 AND tb1.c4 = b.c4
自更新
UPDATE pdfhots SET pdfurl=replace(pdfhots.pdfurl,'10.177.6.192','10.177.5.3')
INSERT INTO public_user (SELECT useraccount, password, username, userlevel,NULL,NULL,now(),now(),deletedat,userid,useraccount,'001' FROM pub_user)
第二个例子
INSERT INTO hotsrelation(hotid,relatedotherobjecttype,relatedotherobjectid) SELECT hotid,relatedotherobjecttype,relatedotherobjectid FROM hotsrelation1
select CAST('5' as char),CAST('2015-10-10' as char),CAST('e10adc3949ba59abbe56e057f20f883e' as uuid);
SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE datname='base_graphdb1' AND pid<>pg_backend_pid();
不区分大小写模糊匹配:~* 'aa'
左侧匹配:~ '^aa'
#表public_pdfsearch已建好 主键为id
CREATE SEQUENCE public_pdfsearch_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
alter table public_pdfsearch alter column id set default nextval('public_pdfsearch_id_seq');
# ilike 关键字不区分大小写
# distinct on (字段) 去除字段列的重复记录
select distinct on (filepath) filename,filepath,pages from public_pdfsearch where context ilike '%IA344%' or imgtext ilike '%IA344%' or filename ilike '%IA344%' limit 50
#分组
select public_pdfsearch.filepath, count(*) as num from public_pdfsearch where context ilike '%陈%' or imgtext ilike '%陈%' or filename ilike '%陈%' GROUP BY filepath ORDER BY num DESC
CREATE EXTENSION pg_trgm;
CREATE INDEX ix_gallery_map_author ON gallery_map USING gin (author gin_trgm_ops);
EXPLAIN ANALYZE select * from gallery_map where author like '曹%'; QUERY PLAN
创建函数
CREATE OR REPLACE FUNCTION CnFirstChar(s character varying) RETURNS character varying AS $BODY$ declare retval character varying; c character varying; l integer; b bytea; w integer; begin l=length(s); retval=''; while l>0 loop c=left(s,1); b=convert_to(c,'GB18030')::bytea; if get_byte(b,0)<127 then retval=retval || upper(c); elsif length(b)=2 then begin w=get_byte(b,0)*256+get_byte(b,1); --汉字GBK编码按拼音排序,按字符数来查找,基于概率来说,效率应该比挨个强:) if w between 48119 and 49061 then --"J";48119;49061;942 retval=retval || 'J'; elsif w between 54481 and 55289 then --"Z";54481;55289;808 retval=retval || 'Z'; elsif w between 53689 and 54480 then --"Y";53689;54480;791 retval=retval || 'Y'; elsif w between 51446 and 52208 then --"S";51446;52208;762 retval=retval || 'S'; elsif w between 52980 and 53640 then --"X";52980;53640;660 retval=retval || 'X'; elsif w between 49324 and 49895 then --"L";49324;49895;571 retval=retval || 'L'; elsif w between 45761 and 46317 then --"C";45761;46317;556 retval=retval || 'C'; elsif w between 45253 and 45760 then --"B";45253;45760;507 retval=retval || 'B'; elsif w between 46318 and 46825 then --"D";46318;46825;507 retval=retval || 'D'; elsif w between 47614 and 48118 then --"H";47614;48118;504 retval=retval || 'H'; elsif w between 50906 and 51386 then --"Q";50906;51386;480 retval=retval || 'Q'; elsif w between 52218 and 52697 then --"T";52218;52697;479 retval=retval || 'T'; elsif w between 49896 and 50370 then --"M";49896;50370;474 retval=retval || 'M'; elsif w between 47297 and 47613 then --"G";47297;47613;316 retval=retval || 'G'; elsif w between 47010 and 47296 then--"F";47010;47296;286 retval=retval || 'F'; elsif w between 50622 and 50905 then--"P";50622;50905;283 retval=retval || 'P'; elsif w between 52698 and 52979 then--"W";52698;52979;281 retval=retval || 'W'; elsif w between 49062 and 49323 then--"K";49062;49323;261 retval=retval || 'K'; elsif w between 50371 and 50613 then --"N";50371;50613;242 retval=retval || 'N'; elsif w between 46826 and 47009 then--"E";46826;47009;183 retval=retval || 'E'; elsif w between 51387 and 51445 then--"R";51387;51445;58 retval=retval || 'R'; elsif w between 45217 and 45252 then --"A";45217;45252;35 retval=retval || 'A'; elsif w between 50614 and 50621 then --"O";50614;50621;7 retval=retval || 'O'; end if; end; end if; s=substring(s,2,l-1); l=l-1; end loop; return retval; end; $BODY$ LANGUAGE plpgsql IMMUTABLE;
使用方法
SELECT
enumvalue,
CnFirstChar(enumvalue) as firstChar
FROM
field_enum_list
WHERE
tablename = 'equip_interplantpipeline'
AND filedname = 'pipenet'
ORDER BY
firstChar
SELECT
CASE
WHEN filename ~* 'F001' THEN
2.4
ELSE
1.5
END AS weight
FROM
equip_filemap
alter table underline alter geom type geometry(MultiLineString)
alter table equip_riskmap alter COLUMN risklevel type int using risklevel::int
select ST_AsText(geom)
ST_Intersects(e.geom, r.geom)
SELECT st_distance(geometry('POINT(115.967054194395 39.7315610991521)')::geography,geometry('POINT(115.96694062267 39.731557951387)')::geography)
ST_Contains(polygon.geom,point.geom)
ST_Overlaps(geometry, geometry)
ST_Crosses(geometry, geometry)
ST_MakeValid(geom)
ST_LineFromText("linestring(115.99595273353 39.716924496395,115.99633092501 39.716964729531,115.99626655199 39.716835983498,115.9960600219 39.716846712334,115.99595273353 39.716924496395)")
ST_MPolyFromText("multipolygon(((115.99595273353 39.716924496395,115.99633092501 39.716964729531,115.99626655199 39.716835983498,115.9960600219 39.716846712334,115.99595273353 39.716924496395)))")
st_split(ST_MakeValid(inputgeom),bable)--第一个参数为被切图行
ST_Centroid(geom)
ST_Intersection(geom,geom)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。