如何在sql(价格列)中更新逗号后的值

如何在sql(价格列)中更新逗号后的值,sql,comma,sqlbuddy,Sql,Comma,Sqlbuddy,如何在sql中更改逗号后的价格值 我有一个值为35.345等的表。我想将所有值更改为xx.95。 所以我想保持逗号的左边不变,把所有的价格分为95 UPDATE `oc_product` <br> SET price=RIGHT(price,95)<br> WHERE price<> .95; 更新'oc\u产品` 设定价格=正确(价格,95) 其中价格为0.95; 还是smth 在Oracle中,您可以执行以下操作: update OC_PRODUCT

如何在sql中更改逗号后的价格值

我有一个值为35.345等的表。我想将所有值更改为xx.95。 所以我想保持逗号的左边不变,把所有的价格分为95

UPDATE `oc_product` <br>
SET price=RIGHT(price,95)<br>
WHERE price<> .95;
更新'oc\u产品`
设定价格=正确(价格,95)
其中价格为0.95;

还是smth

在Oracle中,您可以执行以下操作:

update OC_PRODUCT
   set PRICE = floor(PRICE) + 0.95;
这会将所有价格设置为xx.95

我假设你的价格是一个数字数据类型

编辑:


据我所知,SQLBuddy意味着MySQL,语法将保持不变

如果price有decimal数据类型,请尝试此选项

UPDATE oc_product 
SET price=round(price, 0) + 0.95
WHERE price % 1 != 0.95;
或者如果价格是一个字符

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

您还可以将数字强制转换为整数值,以删除小数并添加0.95

例如:

MySQL支持强制转换,但类型可能不是int


如果是价格,请使用数字数据类型。显示值时,请担心逗号。如果我理解正确,则值将直接从sql表中显示。因此,我不担心逗号本身,而是担心分数值。我已经导入了大约1k个产品,其中包含来自xml的所有数据,但我需要将cend部分更改为.95,逗号/点之前的数字是多少。将xml数据放入具有varchar数据类型的暂存表中。使用SQL好友字符串函数将逗号/句点的左侧部分更新为95。使用SQL好友字符串函数将所有逗号更改为句点。将这些新字符串转换为float,并将它们放入真实的表中。您不需要round(),您需要floor()。我不需要round()-这是真的:)
SELECT CAST(PRICE AS INT) + 0.95