博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
postgresql表记录返回函数
阅读量:5955 次
发布时间:2019-06-19

本文共 2633 字,大约阅读时间需要 8 分钟。

hot3.png

数组中有一些类似的函数比如unnest也会返回表记录集,这里主要将两个函数

generate_series

int,bigint 入参

db01=# select generate_series(1,6); generate_series -----------------               1               2               3               4               5               6(6 rows)db01=# select generate_series(1,6,2); generate_series -----------------               1               3               5(3 rows)db01=# select generate_series(0,-6,-2); generate_series -----------------               0              -2              -4              -6(4 rows)

timestamp,timestamptz

db01=# select generate_series('2015-1-1'::timestamp,'2015-1-4'::timestamp,interval '1 day');   generate_series   --------------------- 2015-01-01 00:00:00 2015-01-02 00:00:00 2015-01-03 00:00:00 2015-01-04 00:00:00(4 rows)

generate_subscripts

这个函数是为了获取数组中特定维度下元素的下标

db01=# select array_1,generate_subscripts(array_1,1) from t_array;                   array_1                    | generate_subscripts ----------------------------------------------+--------------------- {1,2,3}                                      |                   1 {1,2,3}                                      |                   2 {1,2,3}                                      |                   3 {
{1,2,3},{4,5,6},{7,8,9}} | 1 {
{1,2,3},{4,5,6},{7,8,9}} | 2 {
{1,2,3},{4,5,6},{7,8,9}} | 3 {1,2,3,4} | 1 {1,2,3,4} | 2 {1,2,3,4} | 3 {1,2,3,4} | 4 {
{
{1,2},{3,4}},{
{5,6},{6,7}},{
{8,9},{9,10}}} | 1 {
{
{1,2},{3,4}},{
{5,6},{6,7}},{
{8,9},{9,10}}} | 2 {
{
{1,2},{3,4}},{
{5,6},{6,7}},{
{8,9},{9,10}}} | 3 [-1:1]={1,2,3} | -1 [-1:1]={1,2,3} | 0 [-1:1]={1,2,3} | 1(16 rows)

generate_series很多时候用在制作测试数据来使用

关键字 with ordinality

db01=# select * from generate_subscripts('{
{1,2,3},{4,5,6},{7,8,9}}'::int[],2) with ordinality; generate_subscripts | ordinality ---------------------+------------ 1 | 1 2 | 2 3 | 3(3 rows)

有点类似于oracle中的rownum 但是限制是只能放在from语句中,并且只能跟随着函数. 也就是说函数返回表记录集结果的,并且将此函数放在from语句中作为表来使用的可以跟with ordinality 参考:

//END

转载于:https://my.oschina.net/hippora/blog/381887

你可能感兴趣的文章
python的服务
查看>>
Apache优化
查看>>
Linux入门之Linux与Windows常见对比
查看>>
如何创建支持不同屏幕尺寸的Android应用(转载)
查看>>
python学习之面向对象学习进阶
查看>>
python学习之网络编程
查看>>
64位Java开发平台的选择,如何区分JDK,Tomcat,eclipse的32位与64版本
查看>>
谈Win32汇编
查看>>
sqlserver_identity
查看>>
其他的AdapterView——Spinner
查看>>
我的友情链接
查看>>
iOS UIWebView打电话
查看>>
PYB Nano 开发板的完整设计文档
查看>>
Eloquent JavaScript 阅读笔记一
查看>>
客户端浏览器Chrome过早断开连接导致Nginx报400错误的解决办法
查看>>
iOS开发进阶教程【第一季小试牛刀】
查看>>
[MVC4]初识.NET MVC4
查看>>
微软公有云魅力之Traffic Manager
查看>>
IP子网划分
查看>>
Kubernetes Secret
查看>>