sqlite - 字段的后期计算

标签 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进行排序。

这可能吗?

谢谢

最佳答案

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

据我记得,子查询需要先完成,然后才能选择。

这就是我要说的。

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/

相关文章:

iphone - 如何在iphone的sqlite表中获取最后10条添加的记录

android - 如何避免 android SQLite 中的特殊字符?

c++ - 无法使用 std::sort 和自定义比较器对我的数组进行排序

mysql - Rails 数据库查询中的语法错误

php - 使用php连接到localhost sqlite db

python - 需要在文件中找到前 10 个使用过的姓氏。制作了一本字典,但需要对其余部分进行排序

c - 使用 void 指针排序算法,我该怎么做?

c++ - 对其中只有 3 个元素的 100 个元素的整数数组进行排序

c++ - 使用 std::sort 对具有结构对的列表进行排序

javascript - 使用循环将行添加到 sqlite 数据库 (Phonegap)