SQLite如何在末尾使用负号处理负数

时间:2018-11-01 21:13:36

标签: sqlite negative-number

我们以前从未经历过。我们正在导入包含数字列的制表符分隔的TXT文件。负数的指示符在数字后面而不是在前面(例如550.00-而不是-550.00)。

我们正在使用SQLite Expert Professional。查看表中的导入结果时,后面带有负号的任何数字都将转换为前面带负号的数字,但是这些单元格中的每个单元都以蓝色突出显示(我们不确定为什么SQLite Expert会这样做,但是假设是这样具有意义)。此外,在查询和求和时会忽略它们,从而导致结果值高于预期。

字段类型为FLOAT和DECIMAL

我们已经在Google上进行了搜索,但找不到与负号位置有关的任何结果。

感谢有关如何处理此问题的任何帮助。

1 个答案:

答案 0 :(得分:0)

在不使用负号替换负号之后,UPDATE查询可以通过从0中减去不正确的值来更改值。

更新可能基于:-

UPDATE vneg SET iv = (0 - replace(iv,'-','')) WHERE instr(iv,'-') > 1;

例如:-

DROP TABLE IF EXISTS vneg;
CREATE TABLE IF NOT EXISTS vneg (iv);
INSERT INTO vneg VALUES ('100.35'),('133.44-'),('25.453-');
SELECT * FROM vneg; -- First Result (before)
UPDATE vneg SET iv = (0 - replace(iv,'-','')) WHERE instr(iv,'-') > 1;
SELECT * FROM vneg; -- Second result (after)

更新之前:-

enter image description here

更新后:-

enter image description here

然后使用SELECT sum(iv) AS summed FROM vneg;会导致:-

-58.543