首页 >数据库 >mysql教程 >如何在 PostgreSQL 9.6 及更高版本中标准化数组下标范围?

如何在 PostgreSQL 9.6 及更高版本中标准化数组下标范围?

Linda Hamilton
Linda Hamilton原创
2025-01-09 12:21:45128浏览

How Can I Normalize Array Subscript Ranges in PostgreSQL 9.6 and Later?

PostgreSQL 9.6 及更高版本中数组下标范围的规范化

PostgreSQL 中的数组下标可以从任意索引开始。但是,许多应用程序更喜欢从 1 开始的统一下标数组。本文讨论将一维数组规范化为遵循此约定的方法。

现有解决方案

最初,使用 array_lowerarray_upper 函数的复杂解决方案被用来规范化下标。这些方法虽然有效,但复杂且不够优雅。

PostgreSQL 9.6 的简化

随着 PostgreSQL 9.6 的发布,出现了一种更直接的解决方案。手册介绍了省略切片说明符的下界和/或上界的能力,然后将其默认为数组的最小或最大下标。

示例

要规范化具有非统一下标的数组字面量:

<code class="language-sql">SELECT (my_arr[:]);</code>

在我们的示例中,需要括号来解决歧义:

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

这种简化的语法实现了与早期解决方案类似的性能。对于早期 PostgreSQL 版本(9.5 或更早版本),仍然建议使用 array_lowerarray_upper 以及固定的最大下标。

以上是如何在 PostgreSQL 9.6 及更高版本中标准化数组下标范围?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn