首页 > 数据库 > mysql教程 > 如何有效地将 PostgreSQL 数组下标标准化为从 1 开始?

如何有效地将 PostgreSQL 数组下标标准化为从 1 开始?

Linda Hamilton
发布: 2025-01-09 12:06:42
原创
692 人浏览过

How Can I Efficiently Normalize PostgreSQL Array Subscripts to Start at 1?

PostgreSQL数组下标规范化:从1开始

PostgreSQL数组的下标可以从任意值开始。然而,将一维数组的下标规范化为从1开始,可以简化数组操作。本文探讨PostgreSQL 9.6版本中引入的一种更优雅的规范化方法。

在PostgreSQL 9.6之前的版本中,一种方法是使用array_lowerarray_upper函数来指定下标范围:

<code class="language-sql">SELECT ('[5:7]={1,2,3}'::int[])[array_lower('[5:7]={1,2,3}'::int[], 1):array_upper('[5:7]={1,2,3}'::int[], 1)]</code>
登录后复制

但是,从PostgreSQL 9.6开始,一种更简单、更高效的方法出现了:省略切片指定符的下限和上限。根据手册:

<code>可以省略切片指定符的下限和/或上限;缺失的边界将被替换为数组下标的下限或上限。</code>
登录后复制

这允许使用简洁的规范化语法:

<code class="language-sql">SELECT my_arr[:];</code>
登录后复制

例如,对于数组字面量'[5:7]={1,2,3}',可以使用:

<code class="language-sql">SELECT ('[5:7]={1,2,3}'::int[])[:];</code>
登录后复制

这种方法与之前使用硬编码最大数组下标的方法性能相似,但它更优雅,并且可以用于任何大小的数组。

以上是如何有效地将 PostgreSQL 数组下标标准化为从 1 开始?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板