我可以使用 SQLite 的内置
generate_sequence
函数创建一系列具有已知(恒定)下限和上限的值:
sqlite> select value from generate_series(1, 5);
1
2
3
4
5
如果下限和上限必须基于某个表中的值,如何生成这样的序列?例如,假设我有:
sqlite> create table temp(
......> num integer not null
......> );
sqlite> insert into temp values (1), (5);
sqlite> select * from temp;
1
5
以下(相当合理)给出了解析错误:
sqlite> select value from generate_series(
......> select min(num) from temp,
......> select max(num) from temp
......> );
是否可以在不使用递归 CTE 的情况下做我想做的事情? (我的实际用例需要基于数据集中的最小和最大日期的一系列日期,但如果我可以获得一系列整数,生成日期将很简单。)
select value from generate_series(
(select min(num) from temp),
(select max(num) from temp)
);
1
2
3
4
5