替换或删除字符然后转换为十进制

时间:2012-11-12 08:10:26

标签: sql sql-server

我需要删除或替换字符串末尾的不需要的字符(%),并将字符串转换为小数,因为我需要得到 sum 名为discount1discount2

的2个字段

我尝试的最后一个组合是:

replace ((p16.pa_value,'%','')CAST (p16.pa_value AS DECIMAL (3,0))) as discount2,

由于CAST语句中包含replace

,这似乎是错误的

2 个答案:

答案 0 :(得分:5)

试试这个:

CAST (replace (p16.pa_value,'%','') AS DECIMAL (3,0)) as discount2

答案 1 :(得分:1)

好的我不知道为什么你有三个小数后:DECIMAL (3,0)因为如果你转换为十进制它应该是:十进制(10;后面有多少个零) - http://msdn.microsoft.com/en-us/library/aa258271(v=sql.80).aspx

试试这个:

(cast(replace(p16.pa_value, '%','')  as decimal (10,2))) as discount