2020-11-20

随记------postgresql篇
需求:查询表中数据与某个范围相交的部分,利用相交部分进行后期操作
思路:首先查询是否存在相交,若不相交,则不用进行后期操作。
方法:sql语句查询是否相交,结果返回的是每条记录是否与范围相交
1.对查询结果进行二次查询
SELECT  列名... FROM (查询语句) 表名 WHERE  条件
// eg:查询table_name表中,是否与某个范围相交
SELECT
	st_intersects AS st_intersects 
FROM
	(
	SELECT
		st_intersects ( ST_Transform ( ST_MakeEnvelope ( 101.953125, 26.43122806450644, 102.65625, 27.059125784374068, 4326 ), ST_SRID ( geom ) ), geom ) 
	FROM
		table_name 
	) A 
WHERE
	st_intersects = 't'
	// A:给查询结果一个表名,增强sql的语句的可读性,不要和其他列名相同即可
2.几何函数
ST_MakeEnvelope(xmin,ymin,xmax,ymax,srid) 根据最小最大经纬度和坐标系构建一个矩形范围
ST_extent(geom) 获取几何图形的范围
ST_SRID(geom) 获取几何图层的空间参考ID
ST_Transform(geom,空间参考ID) 将输入的geom转换为输入的空间参考的值
st_intersects(geom,geom)判断两个几何对象是否相交

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值