Précédent   Forum des professionnels en informatique > Bases de données > Sybase
Sybase Forum sur la base de données Sybase. Avant de poster -> F.A.Q Sybase, Tutoriels Sybase
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/10/2006, 14h48   #1
Invité de passage
 
Inscription : septembre 2006
Messages : 3
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 3
Points : 1
Points : 1
Par défaut [TSQL]tester si un champs est numeric

Bonjour à tous,

je débute avec Sybase.
Je souhaite faire une mise à jour de table mais uniquement pour les lignes dont la colonne A est un numéric.

update TableA
set colonneC = "toto"
where colonneA est un nombre

j'ai cru comprendre que le IsNumeric n'existe pas sous Sybase je suis bien ennuyé.

Merci
Bryce3D est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2006, 08h02   #2
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
isnumeric() existe à partir de la 15.0.1, mais comme il y a de bonnes chances que tu ne soit pas encore sur cette version (elle est sortie il y a quelques semaines!) il faut trouver une solution différente.

Une option pourrait être quelque chose du genre:

Code :
1
2
3
 
UPDATE ...
WHERE patindex("[0-9.]", convert(varchar, colonneC)) != 0
On convertit "colonneC" en varchar, puis on s'assure que la colonne ne contient que des nombres ou le point. Je n'ai pas vérifié le comportement dans le cas où colonneC est NULL - il faut probablement le traiter explicitement avec une clause "and colonneC is not null" (ou "is null" si NULL est acceptable)

Michael
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2006, 14h27   #3
Invité de passage
 
Inscription : septembre 2006
Messages : 3
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 3
Points : 1
Points : 1
C'est une bonne piste merci, je la creuse en ce moment.
Mais j'ai cependant encore un soucis.
Je ne maitrise pas la longeur des données dans colonneA.
C'est une premiere partie d'adresse, j'ai donc du : 153, 1, 12 BIS
Et le code que tu as donné détecte si le premier caractère est un chiffre, donc mes valeurs à deux chiffres ne sont pas prises en compte.
Bryce3D est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2006, 16h41   #4
Invité de passage
 
Inscription : septembre 2006
Messages : 3
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 3
Points : 1
Points : 1
J'ai résolu mon probleme en prenant la partie numérique (située avant le caractere espace, garce à "patindex") pour la convertir en "int". Puis le reste de mes lignes sans lettre fut simple.

Merci encore
Bryce3D est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h43.


 
 
 
 
Partenaires

Hébergement Web