• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > PostgreSQL的generate_series函数应用例子

PostgreSQL的generate_series函数应用例子

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了PostgreSQL,generate,series,函数,等相关知识,希望本文的分享对您有所帮助

PostgreSQL中有一个很有用处的内置函数generate_series,可以按不同的规则用来产生一系列的填充数据。 一、语法 generate_series(start,stop) --int or bigint generate_series(start,stop,step) --int or bigint generate_series(start,stop, step interval)

PostgreSQL中有一个很有用处的内置函数generate_series,可以按不同的规则用来产生一系列的填充数据。

一、语法

generate_series(start,stop) --int or bigint
generate_series(start,stop,step) --int or bigint
generate_series(start,stop, step interval) --timestamp or timestamp with time zone
二、应用例子
1.int类型,不写步长时默认是1
postgres=# select generate_series(1,10);
generate_series
-----------------
1
2
3
4
5
6
7
8
9
10
(10 rows)

postgres=# select generate_series(1,10,3);
generate_series
-----------------
1
4
7
10
(4 rows)

postgres=# select generate_series(5,1);
generate_series
-----------------
(0 rows)

postgres=# select generate_series(5,1,-1);
generate_series
-----------------
5
4
3
2
1
(5 rows)


2.时间类型
postgres=# select generate_series(now(),now() + '7 day','1 day');
generate_series
-------------------------------
2012-08-27 22:12:40.915368+08
2012-08-28 22:12:40.915368+08
2012-08-29 22:12:40.915368+08
2012-08-30 22:12:40.915368+08
2012-08-31 22:12:40.915368+08
2012-09-01 22:12:40.915368+08
2012-09-02 22:12:40.915368+08
2012-09-03 22:12:40.915368+08
(8 rows)

postgres=# select generate_series(to_date('20120827','yyyymmdd'),to_date('20120828','yyyymmdd'),'3 h');
generate_series
------------------------
2012-08-27 00:00:00+08
2012-08-27 03:00:00+08
2012-08-27 06:00:00+08
2012-08-27 09:00:00+08
2012-08-27 12:00:00+08
2012-08-27 15:00:00+08
2012-08-27 18:00:00+08
2012-08-27 21:00:00+08
2012-08-28 00:00:00+08
(9 rows)

3.IP类型
postgres=# create table t_kenyon(id int,ip_start inet,ip_end inet);
CREATE TABLE
postgres=# insert into t_kenyon values(1,'192.168.1.254','192.168.2.5');
INSERT 0 1
postgres=# insert into t_kenyon values(2,'192.168.2.254','192.168.3.5');
INSERT 0 1
postgres=# insert into t_kenyon values(3,'192.168.3.254','192.168.4.5');
INSERT 0 1

postgres=# select * from t_kenyon;
id | ip_start | ip_end
----+---------------+-------------
1 | 192.168.1.254 | 192.168.2.5
1 | 192.168.2.254 | 192.168.3.5
1 | 192.168.3.254 | 192.168.4.5
(3 rows)

postgres=# select id,generate_series(0,ip_end-ip_start)+ip_start as ip_new from t_kenyon;
id | ip_new
----+---------------
1 | 192.168.1.254
1 | 192.168.1.255
1 | 192.168.2.0
1 | 192.168.2.1
1 | 192.168.2.2
1 | 192.168.2.3
1 | 192.168.2.4
1 | 192.168.2.5
2 | 192.168.2.254
2 | 192.168.2.255
2 | 192.168.3.0
2 | 192.168.3.1
2 | 192.168.3.2
2 | 192.168.3.3
2 | 192.168.3.4
2 | 192.168.3.5
3 | 192.168.3.254
3 | 192.168.3.255
3 | 192.168.4.0
3 | 192.168.4.1
3 | 192.168.4.2
3 | 192.168.4.3
3 | 192.168.4.4
3 | 192.168.4.5
(24 rows)
三、总结
Pg的generate_series函数对生成测试数据,批量更新一定规则的数据有比较多的应用场景,使用得当可提升开发效率。另外IP的序列生成也是PG的一个亮点。
有两种情况不能生成数据:
1.步长为正,且开始值比结束值大
2.步长为负,且开始值比结束值小
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 将MySQL数据库移植为PostgreSQL
  • 关于PostgreSQL 版本识别 的详解
  • 将MySQL数据库移植为PostgreSQL
  • PostgreSQL的window函数整理
  • PostgreSQL源码分析: 动态Hash
  • PostgreSQL的generate_series函数应用例子
  • PostgreSQL的执行计划分析
  • PostgreSQL数据库切割和组合字段函数
  • C# 操作PostgreSQL 数据库

相关文章

  • 2018-12-05MySQL5.7数据库详细安装方法和配置步骤(图文)
  • 2018-12-05mysql连接过多和死掉以及拒绝服务的解决方法
  • 2017-05-11mysql error:#1062 Duplicate entry ‘***′ for key 1问题解决方法
  • 2017-05-11sql面试题(查看数据中指定几行记录)
  • 2017-05-11windows下重启mysql的方法
  • 2018-12-05最全的MySQL调试与优化技巧
  • 2018-12-05Mysql之EXPLAIN显示using filesort介绍
  • 2018-12-05MySQ登录提示ERROR 1045 (28000)错误如何解决
  • 2018-12-05mysql 日期和时间函数
  • 2018-12-05Mysql备份_MySQL

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • MySQL利用procedure analyse()函数优化表结构
    • sqlserver对字段出现NULL值的处理
    • MySQL 5.6 如何更改安全的处理密码探讨
    • Sql Server 数据库索引整理语句,自动整理数据库索引
    • 在Mysql上创建数据表实例代码
    • Mysq的一些​常见误区
    • mysql时间戳转成常用可读时间格式的两种方法
    • sqlserver下将数据库记录的列记录转换成行记录的方法
    • MySQL Order By索引优化方法
    • 详解MySQL临时表的功能及实例代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有