SQL remplacer point par virgule
j'ai le code suivant:
SELECT cast(Listenpreis*1.19 as decimal(29,2)) as Listenpreis
FROM [SL_M03KNE].[dbo].[ARKALK]
j'obtiens cette valeur: 5.59
j'essaie de remplacer le point par un komma alors j'obtiens la valeur: 5,59
j'ai essayer le code:
SELECT replace((cast(Listenpreis*1.19 as decimal(29,2)) as Listenpreis),'.','))
FROM [SL_M03KNE].[dbo].[ARKALK]
mais quelque chose ne va pas avec la syntaxe. Des Idées?
j'ai trouvé: si je fais un
select Artikelnummer,Listenpreis*1.19 as money from [SL_M03KNE].[dbo].[ARKALK]
j'obtiens: 5,59
Si je fais un
EXEC master..xp_cmdshell 'bcp "select Artikelnummer,Listenpreis*1.19 as money from [SL_M03KNE].[dbo].[ARKALK]" queryout "D:shopxmlArtikelpreise_ohne.csv" -E -c -T -x
le bcp fait une conversion du komma en point. Comment puis-je fixe?
5 réponses
as Listenpreis
aliasing est au mauvais endroit. Il doit être la dernière chose. Aussi l' '.','
partie.
SELECT REPLACE(CAST(Listenpreis*1.19 AS DECIMAL(29,2)) ,'.',',') AS Listenpreis
FROM [SL_M03KNE].[dbo].[ARKALK]
Cela devrait fonctionner:
select replace(cast(Listenpreis*1.19 as decimal(29,2)),'.',',') as Listenpreis
from [SL_M03KNE].[dbo].[ARKALK]
on dirait que vous compensez pour les paramètres culturels, regardez le COLLATE
déclaration.
il Vous manque une virgule et une apostrophe (vous avez '.','
et vous avez besoin d' '.',','
), essayez de:
SELECT
REPLACE(CAST(Listenpreis*1.19 as decimal(29,2)), '.', ',') as Listenpreis
FROM [SL_M03KNE].[dbo].[ARKALK]
j'ai lutté avec ce problème aussi et pour moi, la fonction qui fonctionne est:
CAST(replace_this_with_number_or_column_you_want_to_convert) en tant QUE float)
est - ce que cela vous aide aussi?
Pourriez-vous essayer?
EXEC master..xp_cmdshell 'bcp "select Artikelnummer, REPLACE(CAST( Listenpreis*1.19 AS VARCHAR),''.'','','') as money from [SL_M03KNE].[dbo].[ARKALK]" queryout "D:\shop\xml\Artikelpreise_ohne.csv" -E -c -T -x'