整数分隔列-SQLite

时间:2018-07-13 15:58:32

标签: sqlite android-sqlite

如何划分2列并更新结果为第三列?

UPDATE Table
SET success = (number_won_games / number_all_games)*100
WHERE name_game = 'some name'

此代码不会更新我的专栏,所以我认为你们中的某人可以帮助我吗?

2 个答案:

答案 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;
  • 不需要WHERE子句,因此未包括在内。

插入一行,其中20场比赛以10韩元(成功率为50)成功,并且成功设置为非零值(以表明第一次更新确实更新)

根据您的示例的第一个UPDATE结果为:-

enter image description here

第二次UPDATE将值转换为REAL时,结果为:-

enter image description here