sql - 如何将每列乘以一个数字然后为每列设置新值?

标签 sql postgresql sql-update

我正在尝试将磅转换为克。我有一个以磅为单位保存的 original_amount,我想将这些值中的每一个乘以 453.592 以转换为克。

下面的查询保存了第一个select的值,并不是对每一列都起作用。

如何先选择列,然后相乘,然后更新?

UPDATE inventory 
SET original_amount = subquery.new_amount 
FROM (SELECT original_amount * 453.592 as new_amount 
      FROM inventory) AS subquery 
where original_units iLike 'lbs';

最佳答案

这里不需要子查询,只是:

UPDATE inventory 
SET original_amount = original_amount * 453.592     
WHERE original_units iLike 'lbs';

如果您想更新 original_units 字段,您也可以在此查询中执行此操作:

UPDATE inventory 
SET original_amount = original_amount * 453.592,
    original_units='grams'   
WHERE original_units iLike 'lbs';

关于sql - 如何将每列乘以一个数字然后为每列设置新值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36363383/

相关文章:

sql - sql server 中的临时表

SQL语法困惑(Natural Join)

ruby-on-rails - 在 rails 3.2 中存储带时区的时间戳

sql - 左连接返回重复行

MySQL 查询从整个表中获取值的计数

sql - 在 postgresql 中插入错误的顺序(使用 pro c)

php - 通过 laravel 连接 Postgresql 数据库的问题

php - 使用 php 函数 stripslashes 保存数据库

WHERE 子句中带有子查询的 MYSQL UPDATE 查询 - 优化

php - CodeIgniter 查询 : How to move a column value to another column in the same row and save the current time in the original column?