0

VARCHAR2次のような値を保持するタイプの列を持つデータベースがあります。398566,569885

私が必要とするのは、この数値を float にキャストしてから、次のようにすることです: 398566,56 float にキャストすることはそれほど重要ではありません。数値をトリミングすることが可能であれば、それも問題ありません。

私が試したことは次のとおりです。

select
cast (p1.VALUE as float) as Total
from Workflow p
LEFT JOIN PA_PARAMETER p1 on p1.ID=p.ID AND p1.NAME = 'Total'
WHERE p.TYPE = 'Marketing'

これらの数値をトリミングする方法や、何らかの形で丸める方法はありますか?

4

3 に答える 3

3

これにより、数値が四捨五入されます

select cast(value as decimal(9,2)) 
from workflow...
于 2012-11-02T08:57:11.977 に答える
0

私が収集できることから、(ヨーロッパの) 10 進テキストを含む VARCHAR 列を 2 桁に再フォーマットしたいだけです。

select
left(p1.value, charindex(',', p1.value + ',')+2) as Total
from Workflow p
LEFT JOIN PA_PARAMETER p1 on p1.ID=p.ID AND p1.NAME = 'Total'
WHERE p.TYPE = 'Marketing';

そして、一貫して小数点以下2桁が必要な場合は、

select
left(p1.value + ',00', charindex(',', p1.value + ',')+2) as Total
from Workflow p
LEFT JOIN PA_PARAMETER p1 on p1.ID=p.ID AND p1.NAME = 'Total'
WHERE p.TYPE = 'Marketing';
于 2012-11-02T09:22:53.400 に答える