后期计算一个字段

时间:2016-02-24 03:26:07

标签: sqlite sorting

我正在使用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计算的,计算有点耗时。在这种情况下,是否可以执行延迟计算以提高性能。

那是:

  1. 将两个记录与其F1值进行比较。如果它们不同,则直接返回订单。
  2. 如果他们的F1值相同,则计算F3值并根据F3进行排序。
  3. 这可能吗?

    由于

1 个答案:

答案 0 :(得分:0)

只是一个想法,但你不能在多选中做到吗?

据我所知,子查询需要先完成,然后再进行选择。

这就是我所说的。

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