如何在sqlite中的View中添加新列?

前端之家收集整理的这篇文章主要介绍了如何在sqlite中的View中添加新列?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在sqlite(table1)中有这个数据库

+-----+-------+-------+
| _id | name  | level |
+-----+-------+-------+
| 1   | Mike  | 3     |
| 2   | John  | 2     |
| 3   | Bob   | 2     |
| 4   | David | 1     |
| 5   | Tom   | 2     |
+-----+-------+-------+

我想创建一个包含级别2的所有元素的视图,然后添加一个新列,指示新表中行的顺序.也就是说,我想要这个结果:

+-------+------+
| index | name |
+-------+------+
| 1     | John |
| 2     | Bob  |
| 3     | Tom  |
+-------+------+

我试过了:

CREATE VIEW words AS SELECT _id as index,name FROM table1;

但后来我得到:

+-------+------+
| index | name |
+-------+------+
| 2     | John |
| 3     | Bob  |
| 5     | Tom  |
+-------+------+

我想它应该是这样的:

CREATE VIEW words AS SELECT XXXX as index,name FROM table 1;

我应该使用什么而不是XXXX?

解决方法

按_id排序时,包含此行的行数与_id值小于或等于此行的_id的行数相同:

CREATE VIEW words AS
  SELECT (SELECT COUNT(*)
          FROM table1 b
          WHERE level = 2
            AND b._id <= a._id) AS "index",name
  FROM table1 a
  WHERE level = 2;

(计算本身实际上并不需要ORDER BY _id,因为当我们只计算它们时,行的顺序无关紧要.)

请注意,保证不会对单词进行排序;如果需要,添加ORDER BY“index”.

当然,这不是很有效率.

猜你在找的Sqlite相关文章