PostgreSQL Documentation on arrays은 [-1]
을 사용하여 배열의 마지막 요소로 보이는 것을 액세스하는 예를 제공합니다. SELECT arr[2:3];
은 {5,9}
이고, arr[2:-1]
은 {}
이됩니다.PostgreSQL에서 배열의 마지막 요소를 얻는 방법?
배열의 마지막 요소는 PostgreSQL에서 어떻게 얻을 수 있습니까?
편집 : 윈도우, PostgreSQL의 v9.2.1
PostgreSQL Documentation on arrays은 [-1]
을 사용하여 배열의 마지막 요소로 보이는 것을 액세스하는 예를 제공합니다. SELECT arr[2:3];
은 {5,9}
이고, arr[2:-1]
은 {}
이됩니다.PostgreSQL에서 배열의 마지막 요소를 얻는 방법?
배열의 마지막 요소는 PostgreSQL에서 어떻게 얻을 수 있습니까?
편집 : 윈도우, PostgreSQL의 v9.2.1
나는 당신이 예를 잘못 해석하고 생각합니다. PostgreSQL의 배열은 n
1에서 인덱싱 할 that's just the default이 없어 기본적으로
PostgreSQL의이 배열 한 계 넘버링 규칙을 사용, 즉 N 요소들의 어레이를
array[1]
시작array[n]
으로 끝납니다.SELECT f1[1][-2][3] AS e1, f1[1][-1][5] AS e2 FROM (SELECT '[1:1][-2:-1][3:5]={{{1,2,3},{4,5,6}}}'::int[] AS f1) AS ss;
하지만 그 음수는 Perl과 같은 언어와 같은 배열의 끝에서 인덱싱되지 않습니다
당신이보고있는 예는 이것이다. FROM (SELECT ...
부분에서 그들은 시작 및 종료 인덱스를 지정하므로 f1[1][-1][5]
의 -1은 단순한 오래된 인덱스입니다. 이 array_dims
결과를 고려
=> SELECT array_dims('[1:1][-2:-1][3:5]={{{1,2,3},{4,5,6}}}'::int[]);
array_dims
-------------------
[1:1][-2:-1][3:5]
당신은 당신이 간단한 arr[array_length(arr, 1)]
와 마지막 요소를 얻을 수있는 기본 1 기반의 배열을 사용하는 경우. 기본 [1:n]
배열을 사용하지 않는 경우 첫 번째 요소와 마지막 요소를 가져 오려면 array_lower
및 array_upper
을 사용해야합니다. 또는 상황에 따라 unnest
을 사용하여 배열의 압축을 풀고 배열을 행 집합으로 사용할 수 있습니다.
는 도착 이용해 배열의 마지막 요소를 가져
SELECT arr[array_upper(arr, 1)];