ST_within 純量函數

如果第一個幾何形狀完全在第二個幾何形狀內,則 ST_INNED 函數會採用兩個幾何形狀作為輸入參數,並傳回 1。 否則會傳回 0 (零)。

ST_WITHIN 會執行 ST_CONTAINS 在反轉參數的情況下所執行的相同邏輯作業。 ST_WITHIN 會傳回 ST_CONTAINS 的完全相反結果。

如果 geometry1geometry2 是空值,則結果是空值。 如果 geometry1geometry2 是空的,則會傳回 0 (零)。

讀取語法圖跳過視覺化語法圖ST_WITHIN(geometry1,geometry2)
geometry1
St_geometry 類型的值或要測試的其中一個子類型,完全在 geometry2內。
geometry2
要測試以完全包含 geometry1的 ST_GEOMETRY 類型值或其中一個子類型。

函數的結果為 INTEGER。

附註

如果幾何形狀的內部幾何形狀相交,且 geometry1 的內部或界限與 geometry2的外部幾何形狀相交,則一個幾何形狀 (geometry1) 位於另一個幾何形狀 (geometry2) 內。

範例

從 Sample_POINTS 表格中的多邊形中尋找點。

CREATE TABLE sample_points (id INTEGER, geometry QSYS2.ST_POINT);
CREATE TABLE sample_polygons (id INTEGER, geometry QSYS2.ST_POLYGON);

INSERT INTO sample_points (id, geometry)
  VALUES (1, QSYS2.ST_POINT(10, 20)),
         (2, QSYS2.ST_POINT('point (41 41)')),
         (3, QSYS2.ST_POINT('point (1 1)'));

INSERT INTO sample_polygons (id, geometry)
  VALUES (100, QSYS2.ST_POLYGON('polygon (( 0 0, 0 40, 40 40, 40 0, 0 0))'));
           
SELECT QSYS2.ST_ASTEXT(a.geometry) AS point, QSYS2.ST_ASTEXT(b.geometry) AS polygon
  FROM sample_points a, sample_polygons b
  WHERE QSYS2.ST_WITHIN(a.geometry, b.geometry) = 1;

結果:


POINT               POLYGON                                                      
-----------------   -----------------------------------------------------------  
POINT (10.0 20.0)   POLYGON ((0.0 0.0, 40.0 0.0, 40.0 40.0, 0.0 40.0, 0.0 0.0))  
POINT (1.0 1.0)     POLYGON ((0.0 0.0, 40.0 0.0, 40.0 40.0, 0.0 40.0, 0.0 0.0))