我们以前从未经历过。我们正在导入包含数字列的制表符分隔的TXT文件。负数的指示符在数字后面而不是在前面(例如550.00-而不是-550.00)。
我们正在使用SQLite Expert Professional。查看表中的导入结果时,后面带有负号的任何数字都将转换为前面带负号的数字,但是这些单元格中的每个单元都以蓝色突出显示(我们不确定为什么SQLite Expert会这样做,但是假设是这样具有意义)。此外,在查询和求和时会忽略它们,从而导致结果值高于预期。
字段类型为FLOAT和DECIMAL
我们已经在Google上进行了搜索,但找不到与负号位置有关的任何结果。
感谢有关如何处理此问题的任何帮助。
答案 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)
更新之前:-
更新后:-
然后使用SELECT sum(iv) AS summed FROM vneg;
会导致:-
-58.543