Sqlite参考手册
其他 | Miscellaneous
The generate_series Table-Valued Function
1.概述
1.1 等价递归公用表表达式
2.使用示例
generate_series(START,END,STEP)表值函数是包含在 SQLite 源代码树中的可载入扩展,并且被编译到命令行 shell 中。generate_series()表具有一个名为 “value” 的结果列,其中包含整数值和由参数 START,END 和 STEP 确定的行数。该表的第一行具有 START 值。后续行按 STEP 增加至 END。
省略参数采用默认值。STEP 默认为 1.END 默认为9223372036854775807.START 默认为0。
1.1 等价递归公用表表达式
可以使用递归公用表表达式来模拟 generate_series 表。如果三个参数是 $ start,$ end和$ step,那么等效的公用表表达式是:
WITH RECURSIVE generate_series(value) AS (
SELECT $start
UNION ALL
SELECT value+$step FROM generate_series
WHERE value+$step<=$end
) ...
公用表表达式工作时无需加载扩展名。另一方面,扩展程序更容易编程并且速度更快。
生成小于或等于100的所有5的倍数:
SELECT value FROM generate_series(5,100,5);
生成20个随机整数值:
SELECT random() FROM generate_series LIMIT 20;
找到帐户号码为10000到20000之间100的倍数的每个客户的名称。
SELECT customer.name
FROM customer, generate_series(10000,20000,100)
WHERE customer.id=value;
/* or */
SELECT name FROM customer
WHERE id IN (SELECT value
FROM generate_series(10000,20000,200));
其他 | Miscellaneous相关
SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来
主页 | https://sqlite.org/ |
源码 | https://www.sqlite.org/src/ |
发布版本 | 3.21.0 |