>데이터 베이스 >MySQL 튜토리얼 >PostgreSQL 배열 첨자를 1부터 시작하도록 쉽게 정규화하려면 어떻게 해야 합니까?

PostgreSQL 배열 첨자를 1부터 시작하도록 쉽게 정규화하려면 어떻게 해야 합니까?

DDD
DDD원래의
2025-01-09 12:12:42348검색

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

PostgreSQL 배열 첨자를 정규화하는 단순화된 방법

PostgreSQL에서는 배열 첨자가 모든 값에서 시작될 수 있습니다. 그러나 어떤 경우에는 1차원 배열을 인덱스 1에서 시작하도록 정규화해야 합니다.

이전 솔루션에서는 array_lower()array_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 class="language-sql">SELECT my_arr[:];</code>

제공된 예에서 대괄호는 구문이 명확한지 확인합니다.

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

이 최적화된 솔루션은 이전 세대 솔루션과 유사하게 작동하므로 PostgreSQL 9.6 이상에서 선호되는 방법입니다. 이전 버전(9.5 이하)의 경우 최대 배열 첨자를 하드코딩하는 것이 여전히 권장되는 접근 방식입니다.

위 내용은 PostgreSQL 배열 첨자를 1부터 시작하도록 쉽게 정규화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.