我正在使用 SQLite 3.11。我创建一个表如下:
CREATE TABLE MyTable (F1 INTEGER, F2 INTEGER, F3 INTEGER, F4 INTEGER);
然后添加以下记录:
INSERT INTO MyTable (F1, F2) Values (1, 1);
INSERT INTO MyTable (F1, F2) Values (1, 2);
INSERT INTO MyTable (F1, F2) Values (2, 2);
INSERT INTO MyTable (F1, F2) Values (2, 3);
我想从MyTable中选择并根据F1,然后F3,然后F4排序,如下:
SELECT * FROM MyTable ORDER BY F1, F3, F4
但是F3、F4是根据F1、F2计算出来的,计算有点耗时。这种情况下,是否可以进行后期计算来提高性能。
即:
- 将两条记录与其 F1 值进行比较。如果不同,则直接退回订单。
- 如果F1值相同,则计算F3值,并根据F3进行排序。
这可能吗?
谢谢
最佳答案
只是一个想法,但你不能在多选中做到这一点吗?
据我记得,子查询需要先完成,然后才能选择。
这就是我要说的。
SELECT F1, F2, F3, F4
FROM (SELECT F1, F2, Some_Super_Complex_Calculation AS F3, Another_Super_Complex_Calculation AS F4
FROM MyTable)
ORDER BY F1, F3, F4
关于sqlite - 字段的后期计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35592659/