当从另一个表获取下限和上限时,如何在 SQLite 中生成值序列?

问题描述 投票:0回答:1

我可以使用 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 的情况下做我想做的事情? (我的实际用例需要基于数据集中的最小和最大日期的一系列日期,但如果我可以获得一系列整数,生成日期将很简单。)

sqlite generate-series
1个回答
0
投票
select value from generate_series(
    (select min(num) from temp), 
    (select max(num) from temp)
);
1
2
3
4
5
© www.soinside.com 2019 - 2024. All rights reserved.