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

GEODATA DAYS 2024

#1 Mon 14 April 2008 09:43

chris
Participant actif
Lieu: florensac
Date d'inscription: 7 Sep 2005
Messages: 56

requête SQL pour étiqueter les entités sans le caractère "?"

Bonjour,
J'aurais besoin d'étiqueter une partie des entités d'une couche (et non pas toutes les entités de ma couche). Pour cela je fais une requête SQL pour dire quelles entités sont à étiqueter. Il me faudrait étiqueter toutes les entités sauf celles contenant le caractère "?". Comme il s'agit d'un caractère spécial je ne sais pas comment faire.
J'ai pensé à :

Code:

[monChamp] not like '*?*'

mais bien sûr ça ne marche pas puisque le * signifie un certain nombre de caractères mais que le ? est vraiment un caractère
J'ai essayé avec un "\" avant le ? pour forcer le caractère "?" mais ça ne marche pas non plus =>

Code:

[monChamp] not like '*\?*'

Dans l'aide d'ArcGis on nous dit d'utiliser un = si on veut forcer le caractère spécial, mais j'ai besoin d'utiliser un * avant et après le ? car le nombre de caractères varie. Donc comment faire ?


Christelle VALLS
Géomaticienne

Hors ligne

 

#2 Mon 14 April 2008 14:51

vagvince
Juste Inscrit !
Lieu: Savigny
Date d'inscription: 26 Sep 2007
Messages: 6
Site web

Re: requête SQL pour étiqueter les entités sans le caractère "?"

Bonjour,
Vous pouvez essayé la syntaxe suivante :[champ] NOT LIKE '%?%'
Elle fonctionne en tout cas sur la version anglaise d'ESRI.

Hors ligne

 

#3 Mon 14 April 2008 14:57

alban
Participant assidu
Lieu: Chizé
Date d'inscription: 16 May 2007
Messages: 156
Site web

Re: requête SQL pour étiqueter les entités sans le caractère "?"

Bonjour,

J´ai fini par la trouver avec un peu de chance :

Code:

POSITION('?' IN "monChamp") = 0

La fonction "position" retourne la 1ère position du caractère recherché (ici '?') dans un texte (contenu dans "MonChamp"). Si '?' est absent, la fonction retourne 0.

Cela fonctionne avec ArcGIS 9.2 SP4.

Géomatiquement,

Alban

PS : la SP5 est-elle stable ?

Hors ligne

 

#4 Mon 14 April 2008 16:05

chris
Participant actif
Lieu: florensac
Date d'inscription: 7 Sep 2005
Messages: 56

Re: requête SQL pour étiqueter les entités sans le caractère "?"

J'ai essayé : [champ] NOT LIKE '%?%' mais ca ne marche pas mais ne fait pas d'erreur.
et POSITION('?' IN "monChamp") <> 0 me fait une erreur

RQ : j'ai la version française et ArcView 9.1


Christelle VALLS
Géomaticienne

Hors ligne

 

#5 Mon 14 April 2008 16:14

Tnarbiv
Participant assidu
Lieu: Véretz
Date d'inscription: 5 Sep 2005
Messages: 392

Re: requête SQL pour étiqueter les entités sans le caractère "?"

Bonjour,

Faîtes une vérification concernant la syntaxe dans vos requêtes car si vous travaillez avec des fichiers de formes, couvertures ou gdb personnelles celle-ci change.

ex : "nom du champ" pour les fdf et couvertures et [nom du champ] pour les gdb perso.

@+


Ayez le réflexe "Développement Durable": N'imprimez ce message que si nécessaire.

Hors ligne

 

#6 Mon 14 April 2008 16:27

chris
Participant actif
Lieu: florensac
Date d'inscription: 7 Sep 2005
Messages: 56

Re: requête SQL pour étiqueter les entités sans le caractère "?"

j'ai trouvé la solution, puisque la fonction position retournait une erreur, j'en ai essayé une similaire :
Instr([monChamp],'?')=0
Et cette fois ci ça marche
Merci pour votre aide !


Christelle VALLS
Géomaticienne

Hors ligne

 

Pied de page des forums

Powered by FluxBB