如何在sqlite中的View中添加新列?
发布时间:2020-12-12 19:00:13 所属栏目:百科 来源:网络整理
导读:我在sqlite(table1)中有这个数据库: +-----+-------+-------+| _id | name | level |+-----+-------+-------+| 1 | Mike | 3 || 2 | John | 2 || 3 | Bob | 2 || 4 | David | 1 || 5 | Tom | 2 |+-----+-------+-------+ 我想创建一个包含级别2的所有元素的
我在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”. 当然,这不是很有效率. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |