ST_GeometryN utilise une collection et un index de type entier en entrée, et renvoie le nième objet de type géométrie contenu dans la collection.
Syntaxe
db2gse.ST GeometryN(g db2gse.ST_Geometry, n Integer)
Type de retour
db2gse.ST_Geometry
Exemples
Le directeur des services techniques municipaux a besoin de savoir si les bâtis sont tous situés à l'intérieur du premier polygone appartenant au multipolygone de la parcelle.
La colonne BUILDING_ID identifie chaque ligne de la table BUILDINGFOOTPRINTS de manière univoque. La colonne LOT_ID identifie la parcelle du bâtiment et la colonne FOOTPRINT stocke la géométrie de ce dernier.
CREATE TABLE BUILDINGFOOTPRINTS ( building_id integer, lot_id integer, footprint db2gse.ST_MultiPolygon); CREATE TABLE LOTS ( lot_id integer, lot db2gse.ST_MultiPolygon);
La requête répertorie l'ID bâtiment (building_id) et l'ID parcelle (lot_ID) contenus dans la table BUILDINGFOOTPRINTS et associés à tous les bâtis figurant à l'intérieur du premier polygone de la parcelle. La fonction ST_GeometryN renvoie le premier polygone de parcelle appartenant à l'ensemble multipolygonal.
SELECT bf.building_id,bf.lot_id FROM BUILDINGFOOTPRINTS bf,LOTS WHERE db2gse.ST_Within(footprint, db2gse.ST_GeometryN (lot,1)) = 1 AND bf.lot_id = LOTS.lot_id;