2013-11-09 26 views
2

如何更改sql后逗号后的价格值?如何在sql中更改逗号后的值(价格栏)

我有一个值为35.345等的表。我想将所有值更改为xx.95。 所以我想所有的价格分部分保留逗号的左侧,因为它是和更改为95

UPDATE `oc_product` <br> 
SET price=RIGHT(price,95)<br> 
WHERE price<> .95; 

或不便。 ?

+0

如果是价格,请使用数字数据类型。在显示值时担心逗号。 –

+0

如果我正确理解你,然后值从sql表直接显示。所以我不担心逗号本身,但分值。 我已经用xml中的所有数据导入了大约1k的产品,但是我需要将cend部分更改为.95,无需在逗号/点之前填入数字。 – laanojap

+0

将你的xml数据放入一个具有varchar数据类型的登台表中。使用您的SQL Buddy字符串函数将逗号/句点左边的部分更新为95.使用您的SQL Buddy字符串函数将所有逗号更改为句点。将这些新字符串转换为浮点数并放入真实表格中。 –

回答

0

在Oracle中,你会怎么做:

update OC_PRODUCT 
    set PRICE = floor(PRICE) + 0.95; 

这将设置所有价格的东西xx.95。

而且我假设你的价格是数字数据类型...

编辑:

据我所知,SQL好友意味着MySQL中,语法将保持不变。

+0

非常感谢! – laanojap

0

试试这个,如果价格有小数点的数据类型

UPDATE oc_product 
SET price=round(price, 0) + 0.95 
WHERE price % 1 != 0.95; 

或者这一点,如果价格是一个char

UPDATE oc_product 
SET price=cast(cast(price as decimal) + 0.95 as char(4)) 
WHERE price not like '%.95'; 
+0

你不想round(),你想要floor()。 –

+0

我不想轮() - 这是真的:) –

+0

对于你的第二个版本,我认为你的意思是'不喜欢'%.95'... – beny23