J'ai une table avec une seule colonne de type geometry
, contenant des polygones. Comment puis-je obtenir l'union de tous les polygones dans le tableau?SQL: Union de polygones
Répondre
Cela a fonctionné pour moi:
CREATE TABLE #g (i INT IDENTITY, a geometry)
INSERT INTO #g (a)
VALUES
(geometry::STGeomFromText(
'POLYGON((0 0, 3 0, 3 3, 0 3, 0 0))', 0)
),
(geometry::STGeomFromText(
'POLYGON((5 2, 7 2, 7 0, 5 0, 5 2))', 0)
)
DECLARE @g geometry
SELECT TOP 1 @g = a FROM [#g]
SELECT @g = @g.STUnion(a) FROM #g
SELECT @g
Donc, apparemment, la méthode STUnion retourne null lorsque l'instance sur lequel il est appelé ou l'opérande est nulle, d'où la select top 1
hack.
Eh bien, désolé pour le retard. C'est ce que je voulais, merci beaucoup :) – Imp
SELECT DISTINCT geometry from [your table]
?
En ce qui concerne, votre suggestion est fausse pour plusieurs raisons: les données géométriques ne sont pas comparables donc ne peuvent pas être utilisées avec DISTINCT. Et, même si cela était possible, tout ce que vous obtiendriez de cette requête serait un ensemble de géométries individuelles - il n'y a rien ici qui tente de créer une union d'entre eux. –
@AlastairAitchison: En effet. Toutes mes excuses pour cette fausse suggestion. –
Dans SQL Server 2012:
SELECT geometry::UnionAggregate(geomcolumn) FROM YourTable;
Dans SQL Server 2008/R2:
DECLARE @g = geometry::STGeomFromText('GEOMETRYCOLLECTION EMPTY', YourSRID);
SELECT @g = @g.STUnion(geomcolum) FROM YourTable;
Merci, ça fonctionne bien :) Mais c'est juste si l'acceptation va à la collègue qui a répondu plus tôt;) – Imp
En fait, @imp, j'accepterais celle-ci. Vous avez ma permission de prendre des points Internet imaginaires loin de moi et de les donner à cette réponse. :) –
- 1. intersection et union de polygones
- 2. Excel VBA/SQL Union
- 3. Sql Union Query Help
- 4. Performances SQL UNION
- 5. SQL Union/Join requête
- 6. SQL union conditionnelle
- 7. Erreur SQL UNION étrange
- 8. Requête SQL Union
- 9. SQL UNION Question
- 10. UNION SQL Issue
- 11. sql union ordre
- 12. Requêtes SQL utilisant UNION
- 13. somme serveur sql union
- 14. Requête SQL sans UNION
- 15. Combinaison SQL Union et Except
- 16. SQL UNION avec Rails ActiveRecord
- 17. Oracle SQL: Union et Rejoint
- 18. comparer dans Union en sql
- 19. Union conditionnelle dans T-SQL
- 20. SQL: cascade UNION et JOIN
- 21. SQL UNION et ORDER BY
- 22. Instruction SQL UNION dans VBScript
- 23. Union dans SQL Server 2005
- 24. SQL Union aux critères NHibernate
- 25. SQL - JOIN en utilisant UNION ?? UNION utilisant JOIN?
- 26. union conditionnelle sql sur rowcount
- 27. Performances de la requête SQL Union
- 28. Utilisation de SQL JOIN et UNION ensemble
- 29. Combiner des lignes de requête SQL Union
- 30. SQL-Utilisation de PIVOT avec UNION?
Pourriez-vous s'il vous plaît nous envoyer aussi un échantillon de ce qui est dans quelques lignes de tables yoru? Il est frustrant d'entendre parler de la géométrie et de ne même pas voir un seul nom de forme mentionné. –
Que voulez-vous dire par «l'union de tous les polygones»? Voulez-vous le plus petit polygone unique qui entoure tous les polygones de votre table? – MatBailie
@SkippyFastol Je ne suis pas sûr que coller quelques lignes de géométrie codées au format WKB, chacune d'une longueur de milliers d'octets, clarifierait tout. – Imp