Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menormalkan Julat Subskrip Array dalam PostgreSQL 9.6 dan Kemudian?

Bagaimanakah Saya Boleh Menormalkan Julat Subskrip Array dalam PostgreSQL 9.6 dan Kemudian?

Linda Hamilton
Linda Hamiltonasal
2025-01-09 12:21:45172semak imbas

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

Penormalan julat subskrip tatasusunan dalam PostgreSQL 9.6 dan kemudian

Subskrip tatasusunan dalam PostgreSQL boleh bermula dari mana-mana indeks. Walau bagaimanapun, banyak aplikasi lebih suka tatasusunan diindeks seragam bermula pada 1. Artikel ini membincangkan kaedah untuk menormalkan tatasusunan satu dimensi untuk mengikuti konvensyen ini.

Penyelesaian sedia ada

Pada mulanya, penyelesaian kompleks menggunakan fungsi array_lower dan array_upper digunakan untuk menormalkan subskrip. Kaedah ini, walaupun berkesan, adalah kompleks dan tidak elegan.

Pemudahan untuk PostgreSQL 9.6

Dengan keluaran PostgreSQL 9.6 datang penyelesaian yang lebih mudah. Manual menerangkan keupayaan untuk meninggalkan sempadan bawah dan/atau atas penentu hirisan, yang kemudiannya menjadi lalai kepada subskrip minimum atau maksimum tatasusunan.

Contoh

Untuk menormalkan tatasusunan literal dengan subskrip tidak seragam:

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

Dalam contoh kami, kurungan diperlukan untuk menyelesaikan kekaburan:

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

Sintaks yang dipermudahkan ini mencapai prestasi yang serupa dengan penyelesaian terdahulu. Untuk versi PostgreSQL yang lebih awal (9.5 atau lebih awal), masih disyorkan untuk menggunakan array_lower dan array_upper dan subskrip maksimum tetap.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menormalkan Julat Subskrip Array dalam PostgreSQL 9.6 dan Kemudian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn