返回顶部
首页 > 资讯 > 数据库 >【原创】Oracle实现PGSQL的generate_series
  • 343
分享到

【原创】Oracle实现PGSQL的generate_series

2024-04-02 19:04:59 343人浏览 泡泡鱼
摘要

postgresql 有生成序列的函数,可以方便的进行造数据。这里我用oracle实现了PGsql的generate_series函数功能。POSTGRESQL.t_girl=# selec

postgresql 有生成序列的函数,可以方便的进行造数据。这里我用oracle实现了PGsql的generate_series函数功能。

POSTGRESQL.

t_girl=# select * from generate_series(1,10);
 generate_series
-----------------
               1
               2
               3
               4
               5
               6
               7
               8
               9
              10
(10 行记录)
时间:1.290 ms
t_girl=# select * from generate_series(1,10,2);
 generate_series
-----------------
               1
               3
               5
               7
               9
(5 行记录)
时间:0.431 ms
t_girl=# select * from generate_series(1,10,3);
 generate_series
-----------------
               1
               4
               7
              10
(4 行记录)
时间:0.879 ms
t_girl=# select * from generate_series(2,10,3);
 generate_series
-----------------
               2
               5
               8
(3 行记录)
时间:0.867 ms
t_girl=# select count(*) from generate_series(1,1000);
 count
-------
  1000
(1 行记录)
时间:1.142 ms
t_girl=# select to_char(now() - '1 day'::interval * n,'YYYY-MM-DD') as result from generate_series(1,10)  g(n);
   result
------------
 2015-12-08
 2015-12-07
 2015-12-06
 2015-12-05
 2015-12-04
 2015-12-03
 2015-12-02
 2015-12-01
 2015-11-30
 2015-11-29
(10 行记录)
时间:17.284 ms


ORACLE:

12:10:34 SQL> select * from table(ytt_generate_series(1,10));
COLUMN_VALUE                                                                    
------------                                                                    
           1                                                                    
           2                                                                    
           3                                                                    
           4                                                                    
           5                                                                    
           6                                                                    
           7                                                                    
           8                                                                    
           9                                                                    
          10                                                                    
已选择 10 行。
已用时间:  00: 00: 00.02
12:10:36 SQL> select * from table(ytt_generate_series(1,10,2));
COLUMN_VALUE                                                                    
------------                                                                    
           1                                                                    
           3                                                                    
           5                                                                    
           7                                                                    
           9                                                                    
已用时间:  00: 00: 00.00
12:10:54 SQL> select * from table(ytt_generate_series(1,10,3));
COLUMN_VALUE                                                                    
------------                                                                    
           1                                                                    
           4                                                                    
           7                                                                    
          10                                                                    
已用时间:  00: 00: 00.00
12:10:56 SQL> select * from table(ytt_generate_series(2,10,3));
COLUMN_VALUE                                                                    
------------                                                                    
           2                                                                    
           5                                                                    
           8                                                                    
已用时间:  00: 00: 00.02
12:11:04 SQL> select count(*) from table(ytt_generate_series(1,1000));
  COUNT(*)                                                                      
----------                                                                      
      1000                                                                      
已用时间:  00: 00: 00.13
13:32:13 SQL> select to_char(sysdate - n,'YYYY-MM-DD') from table(ytt_generate_series(1,10));
TO_CHAR(SY
----------
2015-12-08
2015-12-07
2015-12-06
2015-12-05
2015-12-04
2015-12-03
2015-12-02
2015-12-01
2015-11-30
2015-11-29
已选择 10 行。
已用时间:  00: 00: 00.01



附上代码:

-- Declare result set.
create or replace type ytt_num is object
( n number);
/
create or replace type numbers_table is table of ytt_num;
/
-- Function body.
-- Created by ytt.
-- 2015/12/9
create or replace function ytt_generate_series
(
f_start_num number := 1, -- Start number.
f_end_num number,  -- Finish number.
f_step_num number := 1 -- Step.
)
return numbers_table pipelined
is 
  list numbers_table := numbers_table();
  i number := 0;
  j number := 1;
begin
  i := f_start_num;
  j := 1;
  -- Increase nested table's size.
  list.extend(f_end_num);
  -- Loop begin.
  while i <= f_end_num loop
  -- Initlization.
    list(j) := ytt_num(null);
    list(j).n := i;
    pipe row(list(j));
    i := i + f_step_num;
    j := j + 1;
  end loop;
  return;
end;
/


您可能感兴趣的文档:

--结束END--

本文标题: 【原创】Oracle实现PGSQL的generate_series

本文链接: https://lsjlt.com/news/41987.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 【原创】Oracle实现PGSQL的generate_series
    PostgreSQL 有生成序列的函数,可以方便的进行造数据。这里我用ORACLE实现了PGSQL的generate_series函数功能。POSTGRESQL.t_girl=# selec...
    99+
    2024-04-02
  • golang与pgsql交互的实现
    目录1、目的2、代码架构3、代码展示1、目的 通过读取配置文件获取pgsql用户名和密码及数据库和数据表,从而读取所需字段值。 2、代码架构 config/config.go:读取...
    99+
    2023-03-19
    golang pgsql交互 golang pgsql
  • vue.js父子组件传参的原理与实现方法 原创
    在Vue中,父子组件之间的数据传递常常会使用props进行实现。具体原理是,当一个父组件嵌套了一个子组件时,在子组件内部使用props接收从父组件传递过来的数据,这些数据可以是基础类...
    99+
    2023-05-17
    vue.js 父子组件 传参
  • vue.js模版插值的原理与实现方法简析 原创
    原理 Vue.js 模板插值的原理是利用了 JavaScript 的模板字符串,采用了数据绑定的方式将数据与视图进行关联,在渲染过程中动态生成 HTML 内容。 具体实现方法 1. ...
    99+
    2023-05-17
    vue.js 模版插值
  • oracle索引创建的原则是什么
    创建索引的原则是根据查询的频率、数据的选择性和查询性能来决定。以下是创建索引的一些原则: 频繁使用的查询应该创建索引:如果某个查...
    99+
    2024-04-09
    oracle
  • Python怎么实现短视频伪原创
    这篇“Python怎么实现短视频伪原创”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python怎么实现短视频伪原创”文章吧...
    99+
    2023-06-29
  • [沫沫金原创]Oracle创建按天自动分区并增加按列值子分区的实现方法
    Oracle创建按天自动分区使用官方提供的 interva 功能子分区正常写,核心就是配置子分区模板,配置后才可以根据列值自动创建配置好的分区。 直接看源码CREATE TABLE "C...
    99+
    2024-04-02
  • Python骚操作完美实现短视频伪原创
    1. 场景 大家好,我是J哥。 前段时间有人私信我,说自己辛辛苦苦剪辑的短视频,上传到某平台后,由于播放量太大,收到 降权 的通知,直接导致这个账号废掉了! 其实,各大视频平台都有自...
    99+
    2024-04-02
  • PostgreSQL、Oracle/MySQL和SQL Server的MVCC实现原理方式
    转: http://www.bkjia.com/oracle/1068936.html PostgreSQL、Oracle/MySQL和SQL Server的MVCC实现原理方式 关...
    99+
    2024-04-02
  • Html5中基于canvas实现原创俄罗斯方块的示例
    这篇文章将为大家详细讲解有关Html5中基于canvas实现原创俄罗斯方块的示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。第一次写俄罗斯方块的时候已经是1年多前了,也是我刚刚学js不久。为了加强对js...
    99+
    2023-06-09
  • Cookie 实现的原理
    基于响应头set-cookie和请求头cookie实现 第一次访问服务器,响应头会返回 set-Cookie 第二次访问,会带着上次请求返回的 Cookie 访问 也需要注意,...
    99+
    2024-04-02
  • oracle创建表空间自动扩展怎么实现
    要实现Oracle数据库表空间的自动扩展,可以通过以下步骤来实现: 创建一个包含自动扩展属性的表空间:在创建表空间时,使用关键字“...
    99+
    2024-04-09
    oracle
  • PygameSurface创建图像的实现
    通过前面内容的介绍,我们对 Surface 对象有了大体上的认识。Pygame 针对文本、图像、颜色提供了不同模块来生成它们各自的 Surface 对象。Surface 模块是Pyg...
    99+
    2024-04-02
  • pycharm怎么实现创建表格_pycharm实现创建表格的方法
    首先打开pycharm工具。 再点击file,创建python项目。 导入python的docx库。 接着创建document对象。 再创建table表格。 最后用text向表...
    99+
    2024-05-10
    python pycharm
  • 基于Python实现原创程序猿乘风破浪小游戏
    目录一、游戏展示二、游戏逻辑一、游戏展示 所谓:开局一张图,后面全靠编。先放图片、动画展示一波。 游戏玩法很简单,按空格猴子↑跳起来,躲开巨浪袭击,时间越长得分越高,碰到巨...
    99+
    2023-02-15
    Python实现程序猿乘风破浪游戏 Python程序猿乘风破浪 Python 游戏
  • PGSQL查询最近N天的数据及SQL语句实现替换字段内容
    目录1、用SQL查询最近N天的数据2、用SQL语句实现替换字段里的内容3、SQL将查询结果赋值4、SQL查询字段内容为 NULL值时候赋值总结1、用SQL查询最近N天的数据 思路:先获取当前的时间,然后更具当前时间去减去...
    99+
    2023-03-06
    plsql查询当天数据 pgsql查询最近数据
  • java原子类实现的原理是什么
    Java原子类的实现原理是利用了底层的CAS(Compare and Swap)操作。CAS是一种乐观锁机制,它包含三个参数:内存位...
    99+
    2023-10-18
    java
  • oracle表空间如何创建及实现dmp文件导入
    这篇文章给大家分享的是有关oracle表空间如何创建及实现dmp文件导入的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。--用oracle系统权限的账号 登陆-- 1.创...
    99+
    2024-04-02
  • JSON Web Tokens的实现原理
    前言 最近在做一个Python项目的改造,将python项目重构为Java项目,过程中遇到了这个知识点,觉得这个蛮实用的,所以下班后回来趁热打铁写下这篇总结,希望后面的人能够有所借鉴,少走弯路。 一、优势简...
    99+
    2022-06-04
    原理 JSON Web
  • Python 探针的实现原理
    探针的实现主要涉及以下几个知识点: sys.meta_path sitecustomize.py sys.meta_path sys.meta_path 这个简单的来说就是可以实现 import hook ...
    99+
    2022-06-04
    探针 原理 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作