generate_series(START,END,STEP)表值函数是SQLite源树中包含的 可加载扩展,并已编译到命令行shell中。generate_series()表具有一个名为“ value”的单个结果列,其中包含整数值以及由参数START,END和STEP确定的行数。该表的第一行的值为START。随后的行按STEP递增,直到END。
省略的参数采用默认值。STEP默认为1。END默认为9223372036854775807。START默认为0。
可以使用递归公用表表达式来模拟generate_series表 。如果三个参数分别是$ start,$ end和$ step,则等效的公用表表达式为:
与递归generate_series(value)AS( 选择$开始 全联盟 选择值+ $ step FROM generate_series 值+ $ step <= $ end )...
公用表表达式无需加载扩展即可工作。另一方面,扩展程序更易于编程且速度更快。
生成小于或等于100的5的所有倍数:
从generate_series(5,100,5)中选择值;
生成20个随机整数值:
从generate_series LIMIT 20中选择random();
找出每个客户的帐户名称(其帐号是10000到20000之间的100的偶数倍)。
选择customer.name 来自客户,generate_series(10000,20000,100) WHERE customer.id = value; /* 或者 */ 选择客户姓名 ID IN(选择值) 来自generate_series(10000,20000,200));