13

私は次のコードを持っています:

SELECT cast(Listenpreis*1.19 as decimal(29,2)) as Listenpreis
 FROM [SL_M03KNE].[dbo].[ARKALK]

私はこの値を取得します: 5.59

ドットをコンマに置き換えようとするので、Value: 5,59 を取得します。

私はコードを試します:

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

しかし、構文に何か問題があります。何か案は?

私が見つけた:もし私が

select Artikelnummer,Listenpreis*1.19 as money from [SL_M03KNE].[dbo].[ARKALK]

私が得る: 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

bcp はコンマからドットへの変換を行います。どうすればこれを修正できますか?

4

5 に答える 5

17

あなたのas Listenpreisエイリアシングは間違った場所にあります。それは最後にする必要があります。また、その '.','部分。

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

SQLFiddle デモ

于 2013-08-15T12:29:27.777 に答える
4

これはうまくいくはずです:

select replace(cast(Listenpreis*1.19 as decimal(29,2)),'.',',') as Listenpreis
 from [SL_M03KNE].[dbo].[ARKALK]

文化的な設定を補っているように聞こえますが、COLLATE声明を見てください。

于 2013-08-15T11:04:41.387 に答える
3

カンマとアポストロフィがありません (持っていて'.','、必要です'.',',')。試してください:

SELECT 
    REPLACE(CAST(Listenpreis*1.19 as decimal(29,2)), '.', ',')  as Listenpreis
FROM [SL_M03KNE].[dbo].[ARKALK]
于 2013-08-15T11:03:46.893 に答える
0

これを試していただけますか?

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'
于 2017-09-12T12:41:09.627 に答える
0

私もこの問題に苦労しましたが、私にとって機能する機能は次のとおりです。

CAST(replace_this_with_number_or_column_you_want_to_convert) AS float)

それはあなたにも役立ちますか?

于 2017-09-12T12:09:43.917 に答える