SQL用逗号替换点

use*_*045 13 sql t-sql sql-server

我有以下代码:

SELECT cast(Listenpreis*1.19 as decimal(29,2)) as Listenpreis
 FROM [SL_M03KNE].[dbo].[ARKALK]
Run Code Online (Sandbox Code Playgroud)

我得到这个值:5.59

我尝试将点替换为komma,因此我得到了值:5,59

我试试代码:

SELECT replace((cast(Listenpreis*1.19 as decimal(29,2)) as Listenpreis),'.','))
 FROM [SL_M03KNE].[dbo].[ARKALK]
Run Code Online (Sandbox Code Playgroud)

但是语法出了点问题.有任何想法吗?

我发现:如果我做了

select Artikelnummer,Listenpreis*1.19 as money from [SL_M03KNE].[dbo].[ARKALK]
Run Code Online (Sandbox Code Playgroud)

我得到:5,59

如果我做了

EXEC master..xp_cmdshell 'bcp "select Artikelnummer,Listenpreis*1.19 as money from [SL_M03KNE].[dbo].[ARKALK]" queryout "D:\shop\xml\Artikelpreise_ohne.csv" -E -c -T -x
Run Code Online (Sandbox Code Playgroud)

bcp执行从komma到dot的转换.我该如何解决这个问题?

Nen*_*vic 17

你的as Listenpreis别名是在错误的地方.它需要是最后一件事.也是 '.','部分.

SELECT REPLACE(CAST(Listenpreis*1.19 AS DECIMAL(29,2)) ,'.',',')  AS Listenpreis
 FROM [SL_M03KNE].[dbo].[ARKALK]
Run Code Online (Sandbox Code Playgroud)

SQLFiddle DEMO


mat*_*mmo 3

您缺少逗号和撇号(您有'.','并且需要'.',','),请尝试:

SELECT 
    REPLACE(CAST(Listenpreis*1.19 as decimal(29,2)), '.', ',')  as Listenpreis
FROM [SL_M03KNE].[dbo].[ARKALK]
Run Code Online (Sandbox Code Playgroud)