小。速度很快。可靠。
选择任意三个选项。
generate_series表值函数

1概述

发电机系列(START、STOP、STEP)表值函数是一个可加载扩展包含在SQLite源代码树中,并编译为这个命令行shell。generate_series()表有一个可见的名为“value”的结果列,包含整数值以及由参数START、STOP和STEP。表的第一行包含START值。后续行按STEP递增为一个值不超过STOP。

generate_series()表具有附加的隐藏列名为“start”、“stop”和“step”,其值为有效值提供或默认的START、STOP和STEP值。它还有一个rowid,可以通过其常用名称访问。

省略的参数采用默认值。STEP默认为1。STOP默认为4294967295。需要START参数从3.37.0(2021-11-27)及更高版本开始,错误将如果START被省略或具有自我参考或其他内容,则被提出无可争议的价值。旧版本的START使用默认值0。遗留行为可以通过编译从最近的代码中获得使用-DZERO_ARGUMENT_GENERATE_SERIES。

1.1.等效递归公共表表达式

可以模拟generate_series表中的正步长值使用递归公共表表达式.如果三个参数是$start、$end和$step,然后是等效的公共表表达式为:

使用递归generate_series(value)AS(选择$start联合所有选择值+$step FROM generate_seriesWHERE值+$step<=$end) ...

公共表表达式无需加载扩展。另一方面,扩展更容易编程速度更快。

2使用示例

生成小于或等于100的5的所有倍数:

从generate_series(5100,5)中选择值;

生成20个随机整数值:

从generate_series(1,20)中选择random();

查找其帐号的每个客户的姓名是10000到20000之间100的偶数倍。

选择customer.nameFROM客户,generate_series(1000020000100)其中customer.id=值;/*或*/从客户中选择名称WHERE id IN(选择值来自generate_series(10000020000200));

此页面上次修改时间2023-05-01 21:49:55联合技术公司