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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#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: 1534

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

Hors 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: 1534

Re: Sélectionner les lignes

= 'LINESTRING'

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

Nicolas

Hors ligne

 

Pied de page des forums

Powered by FluxBB