如何划分2列并更新结果为第三列?
UPDATE Table
SET success = (number_won_games / number_all_games)*100
WHERE name_game = 'some name'
此代码不会更新我的专栏,所以我认为你们中的某人可以帮助我吗?
答案 0 :(得分:1)
我觉得扳机是您最好的选择。我目前无法访问数据库,但类似的方法可能会起作用。
data.table
答案 1 :(得分:1)
我相信您的问题可能是 number_won_games 和 number_all_games 是整数,因此除法始终为0,因此0乘以100便为0,也许给人的印象是什么都没有更新。
您可以尝试将 number_won_games 和 number_all_games 强制转换为REAL,例如使用:-
UPDATE Table
SET success = (CAST(number_won_games AS REAL) / CAST(number_all_games AS REAL)) * 100
WHERE name_game = 'some name';
考虑以下几点:-
DROP TABLE IF EXISTS t;
CREATE TABLE IF NOT EXISTS t (name_game TEXT, number_won_games INTEGER, number_all_games INTEGER, success REAL);
INSERT INTO t VALUES
('game1',10,20,0.12345678);
UPDATE t SET success = (number_won_games / number_all_games) * 100;
SELECT * FROM t;
UPDATE t SET success = (CAST(number_won_games AS REAL) / CAST(number_all_games AS REAL)) * 100;
SELECT * FROM t;
插入一行,其中20场比赛以10韩元(成功率为50)成功,并且成功设置为非零值(以表明第一次更新确实更新)
根据您的示例的第一个UPDATE结果为:-
第二次UPDATE将值转换为REAL时,结果为:-