Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Fri 19 August 2016 08:32

scubas5
Participant occasionnel
Date d'inscription: 23 Mar 2007
Messages: 39

Sélectionner les lignes

Bonjour à tous,

j'ai une base de données sous Postgres 9.3.

J'ai une table qui contient des points et des lignes.

Petit à petit, je vais remplacer les points par des lignes.

Je voudrais faire une requete pour sélectionner que les lignes ( ST LineString).

Lorsque je fais la sélection suivante:

Select distinct st_geometrytype(geom) from ma_table , voila ce que j'ai: ST Point et ST LineString.

Je n'arrive pas à trouver la solution pour retourner que les  ST LineString

Si quelqu'un à une solution.

Merci

Hors ligne

 

#2 Fri 19 August 2016 09:10

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1536

Re: Sélectionner les lignes

Bonjour,

**edited: j'avais pas bien lu smile **
Ajouter une clause WHERE à votre requête: WHERE geometryType(geom) = 'LINESTRING'


(Je vous invite à regarder un ou deux tuto SQL avant de vous lancer sur du spatial: au moins connaitre la structure du SELECT)

Nicolas

En ligne

 

#3 Fri 19 August 2016 09:47

scubas5
Participant occasionnel
Date d'inscription: 23 Mar 2007
Messages: 39

Re: Sélectionner les lignes

Merci de votre réponse.

Bien sur j'ai une clause where.


avec le WHERE geometryType(geom) = 'POINT', cela me remonte bien les ponctuels (3456 éléments)

Pour remonter les lignes, je dois remplacer 'POINT' par ?


Voila ma requete complète:

select mug.mob_id, mu.mob_urivoli,

(CASE WHEN(mu.mob_urivoli is null) THEN 0 ELSE 1 END) as resultat

, mu.mob_lieu,mu.mob_longueur_cm, mu.mob_hauteur_cm, mu.mob_diametre_mm, mu.mob_date,

mu.mob_type, mu.mob_type2, mu.mob_marque, mu.mob_modele, mu.mob_embout, mu.mob_escamotable, mu.mob_couleur_ral, mu.mob_contrpmr, mu.mob_obstpmr, mu.mob_observation, mu.mob_commune, mu.mob_precision_leve

from ma_base.barriere_geo mug, cellule_appuie.mobilier_urbain mu


where mug.mob_id = mu.mob_id

AND geometryType(geom)  = 'POINT'


Cordialement

Hors ligne

 

#4 Fri 19 August 2016 09:55

scubas5
Participant occasionnel
Date d'inscription: 23 Mar 2007
Messages: 39

Re: Sélectionner les lignes

Je viens de trouver une solution:

WHERE geometryType(geom) <> 'POINT'

Cela me remonte bien les lignes.

Merci de m'avoir orienté.

Cordialement.

Hors ligne

 

#5 Fri 19 August 2016 10:01

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1536

Re: Sélectionner les lignes

= 'LINESTRING'

(la doc peut aider aussi: http://postgis.net/docs/GeometryType.html)

Nicolas

En ligne

 

Pied de page des forums

Powered by FluxBB