polygon.sql

来自「postgresql8.3.4源码,开源数据库」· SQL 代码 · 共 120 行

SQL
120
字号
---- POLYGON---- polygon logic---- 3	      o--	      |-- 2	    + |--	   /  |-- 1	  # o +--       /    |-- 0	#-----o-+----	0 1 2 3 4--CREATE TABLE POLYGON_TBL(f1 polygon);INSERT INTO POLYGON_TBL(f1) VALUES ('(2.0,0.0),(2.0,4.0),(0.0,0.0)');INSERT INTO POLYGON_TBL(f1) VALUES ('(3.0,1.0),(3.0,3.0),(1.0,0.0)');-- degenerate polygons INSERT INTO POLYGON_TBL(f1) VALUES ('(0.0,0.0)');INSERT INTO POLYGON_TBL(f1) VALUES ('(0.0,1.0),(0.0,1.0)');-- bad polygon input strings INSERT INTO POLYGON_TBL(f1) VALUES ('0.0');INSERT INTO POLYGON_TBL(f1) VALUES ('(0.0 0.0');INSERT INTO POLYGON_TBL(f1) VALUES ('(0,1,2)');INSERT INTO POLYGON_TBL(f1) VALUES ('(0,1,2,3');INSERT INTO POLYGON_TBL(f1) VALUES ('asdf');SELECT '' AS four, * FROM POLYGON_TBL;-- overlap SELECT '' AS three, p.*   FROM POLYGON_TBL p   WHERE p.f1 && '(3.0,1.0),(3.0,3.0),(1.0,0.0)';-- left overlap SELECT '' AS four, p.*    FROM POLYGON_TBL p   WHERE p.f1 &< '(3.0,1.0),(3.0,3.0),(1.0,0.0)';-- right overlap SELECT '' AS two, p.*    FROM POLYGON_TBL p   WHERE p.f1 &> '(3.0,1.0),(3.0,3.0),(1.0,0.0)';-- left of SELECT '' AS one, p.*   FROM POLYGON_TBL p   WHERE p.f1 << '(3.0,1.0),(3.0,3.0),(1.0,0.0)';-- right of SELECT '' AS zero, p.*   FROM POLYGON_TBL p   WHERE p.f1 >> '(3.0,1.0),(3.0,3.0),(1.0,0.0)';-- contained SELECT '' AS one, p.*    FROM POLYGON_TBL p   WHERE p.f1 <@ polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)';-- same SELECT '' AS one, p.*   FROM POLYGON_TBL p   WHERE p.f1 ~= polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)';-- contains SELECT '' AS one, p.*   FROM POLYGON_TBL p   WHERE p.f1 @> polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)';---- polygon logic---- 3	      o--	      |-- 2	    + |--	   /  |-- 1	  / o +--       /    |-- 0	+-----o-+----	0 1 2 3 4---- left of SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' << polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false;-- left overlap SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' << polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS true;-- right overlap SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' &> polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false;-- right of SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' >> polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false;-- contained in SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' <@ polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false;-- contains SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' @> polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false;-- same SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' ~= polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false;-- overlap SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' && polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS true;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?