在SQLite中,我可以使用
将行号列添加到任意表中select rowid,* from tab;
例如 -
sqlite> create table tab(content);
sqlite> insert into tab values('first row');
sqlite> insert into tab values('second row');
sqlite> insert into tab values('third row');
sqlite> select * from tab;
content
first row
second row
third row
sqlite> select rowid,* from tab;
rowid|content
1|first row
2|second row
3|third row
然而,这种技术不适用于视图 -
sqlite> create view v(content) as select 'first row' union select 'second row' union select 'third row';
sqlite> select * from v;
content
first row
second row
third row
sqlite> select rowid,* from v;
rowid|content
|first row
|second row
|third row
在上面的玩具示例中,我可以在创建视图v时添加行号列,但在实际使用中,我的视图通常是更复杂的表连接或递归CTE。如何在任意视图中添加行号列?