집 >데이터 베이스 >MySQL 튜토리얼 >PostgreSQL에서 배열을 어떻게 결합할 수 있나요?
PostgreSQL은 배열을 조작하기 위한 다양한 방법을 제공합니다. 일반적인 작업 중 하나는 동일한 길이의 두 배열을 요소 쌍으로 결합하는 것입니다. 이 문서에서는 PostgreSQL 버전과 특정 사용 사례를 고려하여 이 작업을 달성하기 위한 다양한 접근 방식을 살펴봅니다.
PostgreSQL 9.5 이상
PostgreSQL 9.5에는 array_agg(배열 표현식)가 도입되어 여러 항목을 연결할 수 있습니다. 배열을 하나의 고차원 배열로 만듭니다. 이 기능은 배열 조합 작업을 단순화하여 사용자 정의 집계 함수가 필요하지 않습니다.
SELECT array_agg(ARRAY[a, b]) AS ab FROM unnest('{a,b,c}'::text[]) AS a, unnest('{d,e,f}'::text[]) AS b;
PostgreSQL 9.4
PostgreSQL 9.5 이전에는 unnest( )를 ROWS FROM으로 사용합니다.
SELECT ARRAY[a, b] AS ab FROM unnest('{a,b,c}'::text[], '{d,e,f}'::text[]) AS tmp(a, b);
배열을 다차원 배열로 결합해야 하는 경우 사용자 정의 집계 함수가 필요합니다.
CREATE OR REPLACE FUNCTION array_agg_mult(anyarray) RETURNS SETOF anyarray LANGUAGE SQL AS $func$ SELECT ARRAY[ARRAY[a, b]] FROM unnest() AS unnest1(a, b); $func$;
SELECT array_agg_mult(ARRAY[ARRAY[a, b]]) AS ab FROM unnest('{a,b,c}'::text[]) AS a, unnest('{d,e,f}'::text[]) AS b;
다음 함수는 임의의 배열을 압축하는 일반화된 접근 방식을 제공합니다. 유형:
CREATE OR REPLACE FUNCTION zip(anyarray, anyarray) RETURNS SETOF anyarray LANGUAGE SQL AS $func$ SELECT array_agg_mult(ARRAY[ARRAY[a, b]]) FROM unnest() AS unnest1(a, b) JOIN unnest() AS unnest2(a, b) ON true; $func$;
이 문서에 제시된 예는 배열 결합에 대한 다양한 시나리오를 보여줍니다.
PostgreSQL은 버전과 원하는 출력 형식에 따라 배열을 결합하기 위한 다양한 옵션을 제공합니다. 이 기사에서는 사용 가능한 접근 방식을 포괄적으로 다루므로 특정 요구 사항에 가장 적합한 방법을 선택할 수 있습니다.
위 내용은 PostgreSQL에서 배열을 어떻게 결합할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!