#1 Tue 25 February 2003 10:53
- Rachel Dussoutras
- Invité
poser une condition dans l'expression
bonjour,
afin de creer un champ a partir d'un autre, je cherche a poser une
condition dans l'expression (equivalent a si dans les formules d'excel
par exemple). Quelle est la fonction ou l'operateur adequat?
merci
#2 Tue 25 February 2003 13:24
- Pascal Geraut
- Invité
Re: poser une condition dans l'expression
Bonjour
Il n'y a pas de fonctions conditionnelles dans MApInfo comme on en trouve
sous Excel, mais en revanche il y a des astuces permettant de contourner
cette lacune dans certains cas avec les booleens.
L'exemple suivant illustre le principe :
Left(NOM_COM, Int(POPU>20000)*254)
J'ai une table avec les colonnes NOM_COM, POPU et NOUVEAU : je veux mettre
dans NOUVEAU le contenu de NOM_COM si POPU est > 20000 : la formule
ci-dessus collee dans l'expression de mise a jour de colonne va fonctionner.
Si popu > 20000 est vrai , la fonction est executee et renvoie la valeur de
POPU
left(nom_com,xx) colle dans la colonne destination le contenu de la colonne
d'origine seulement si la fonction popu>20000 est vraie (* 254 permet
d'avoir une chaine maximale pour cet exemple)
L'ensemble des fonctions disponible permet ainsi de varier les possibilites
a loisir :
Cordialement
Pascal GERAUT
DIOG - ITS
CETE de l'Ouest
#3 Tue 25 February 2003 13:24
- Geo Maumet
- Invité
Re: poser une condition dans l'expression
Bonjour,
Ne confondez pas MapInfo avec un tableur. MapInfo est un SGBD, utilisez les
fonctions de ce type d'outil. Pour remplir une colonne avec une condition, il
faut :
Faire une selection (SQL)
Et ensuite mettre a jour la selection (Update)
comme dans tout SGBD
Laurent
#4 Wed 26 February 2003 12:38
- Rachel Dussoutras
- Invité
Re: poser une condition dans l'expression
Suite a vos remarques, j'ai teste differentes expressions, mais je reste
devant un probleme:
comment supprimer 0 (zero) place devant une chaine de caractere? (je
ne souhaite pas forcement supprimer le premier caractere de la chaine
mais le zero quand il y en a un)
#5 Wed 26 February 2003 17:25
- Rachel Dussoutras
- Invité
Re: poser une condition dans l'expression
M. NADAL ayant trouver la solution a mon probleme, je vous en fait part:
Le probleme etait:
> comment supprimer 0 (zero) place devant une chaine de caractere? (je
> ne souhaite pas forcement supprimer le premier caractere de la chaine
> mais le zero quand il y en a un)
CAS A:
la table a mettre a jour contient les codes des departements (01,02..,2A,...,34):
Left(Left(CODE_DEPART, Val(Left(CODE_DEPART,1))*2)+Right(CODE_DEPART,1),2)
CAS B:
la table a mettre a jour est celle des sections cadastrales (0A, 0B, AB,AC...)
Left(CODE_SECTION,Instr(1,CODE_SECTION, 0 )1)+Right(CODE_SECTION,1)
Heureusement qu'il y en a des plus doues que moi pour les formules!
merci encore