SQL

Fermé
durden - 12 oct. 2007 à 15:04
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 13 oct. 2007 à 04:10
Bonjour,
Avec SQL, j'aimerais afficher une colonne où toutes les virgules seraient remplacées par des points.
Select replace(var1,',','.')
Cela me met : Erreur : nombre invalide
QQun peut-il m'aider?

8 réponses

alexmilano Messages postés 423 Date d'inscription vendredi 14 septembre 2007 Statut Membre Dernière intervention 30 novembre 2017 27
12 oct. 2007 à 15:08
0
je cherche la syntaxe d'un replace
ta page affiche l'ensemble des fonctions..je sais que ca existe 'replace'
merci
0
alexmilano Messages postés 423 Date d'inscription vendredi 14 septembre 2007 Statut Membre Dernière intervention 30 novembre 2017 27
12 oct. 2007 à 15:16
REPLACE
Remplace toutes les occurrences de la deuxième expression chaîne trouvées dans la première expression chaîne par la troisième expression.

Syntaxe
REPLACE ( 'string_expression1' , 'string_expression2' , 'string_expression3' )

Arguments
'string_expression1'

Expression de type chaîne à parcourir. string_expression1 peut être de type binaire ou caractère.

'string_expression2'

Expression de type chaîne à rechercher. string_expression2 peut être de type binaire ou caractère.

'string_expression3'

Expression de type chaîne de remplacement. string_expression3 peut être de type binaire ou caractère.

Type des valeurs renvoyées
Renvoie des données de type caractère si string_expression (1, 2 ou 3) correspond à l'un des types de données caractères pris en charge. Renvoie des données de type binaire si string_expression (1, 2 ou 3) correspond à l'un des types de données binaires pris en charge.

Exemple
Dans cet exemple, la chaîne de caractères cde est remplacée par xxx dans l'expression abcdefghicde.

SELECT REPLACE('abcdefghicde','cde','xxx')
GO

Voici le jeu de résultats obtenu :

------------
abxxxfghixxx
(1 row(s) affected)

0
je te remercie mùais j ai deja lu cet info
en fait, c est toute une variable sur laquelle je souhaite remplacer les virgules par des points.
sur le net, la syntaxe est sur une chaîne de caractères. Mais je ne trouve aucune info sur la syntaxe avec une variable!!!
Au secours!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
alexmilano Messages postés 423 Date d'inscription vendredi 14 septembre 2007 Statut Membre Dernière intervention 30 novembre 2017 27
12 oct. 2007 à 15:27
si c'est une variable, il faut ke celle si soit parametré avan, et la aucune idé !! dsl :(

bonne chanse :;)
0
ok merci
0
Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 225
13 oct. 2007 à 02:33
Salut Durden,

Je n'ai pas de solution mais en lisant le message d'erreur "nombre invalide", je me pose quand même une grande question... n'essaies-tu pas de traiter comme chaine de caractères une variable contenant des valeurs numériques, ce qui provoquerait cette erreur ?

Pose-toi la question de savoir si "var" contient des nombres ou des chaines de caractères. S'il contient des nombres, tu ne pourras pas appliquer un "replace" dessus, on n'édite pas les caractères d'un nombre, même pas la virgule (ou le point décimal) qui n'est qu'une représentation visuelle pour l'utilisateur.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
13 oct. 2007 à 04:10
bonjour Durden,

Je pense qu'il te faut revoir ce qu'est une variable en informatique.
Pour faire simple, une variable permet de stocker une donnée quelconque et la donnée peut être manipulée dans le programme.
Il existe plusieurs type de données : un nombre entier ou décimal, une chaine de caractères ou même un booléen (vrai ou faux)...
Lorsque que tu veux utiliser une variable, il faut déclarer son type de contenu pour que le programme lui alloue une place mémoire.
Comme le dit Posotaz, poses-toi la question de savoir ce que contient var1 ... si var1 n'a pas été déclaré du type String ou Char selon le langage la fonction 'replace' ne fonctionnera pas.
Tu as par contre la possibilté de transformer un nombre en chaine de caractères, en VB ça donne ça :

Dim i As Integer
Dim var As String

i = 3,14
var = Cstr(i)

ensuite tu peux faire replace(var,",",".")
0

Discussions similaires