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?

10
demandé sur user2675045 2013-08-15 15:01:18

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]

SQLFIDDLE DEMO

13
répondu Nenad Zivkovic 2013-08-15 12:35:32

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.

3
répondu Chris 2013-08-15 12:30:21

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]
3
répondu mattytommo 2013-08-20 09:41:48

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?

0
répondu Terka Bone 2017-09-12 12:09:43

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'
0
répondu Serkan Arslan 2017-09-12 12:41:09