집 >데이터 베이스 >MySQL 튜토리얼 >Oracle에서 GROUP_CONCAT 기능을 달성하는 방법은 무엇입니까?
Oracle의 그룹 조인 작업
MySQL의 GROUP_CONCAT
함수는 여러 행의 그룹화된 값을 문자열로 연결할 수 있습니다. Oracle에는 정확히 동등한 기능이 없지만 유사한 기능을 달성하는 방법에는 여러 가지가 있습니다.
Oracle 11g 이상에서는 LISTAGG를 사용합니다
Oracle 11g에서는 값을 쉼표로 구분된 문자열로 집계하는 LISTAGG
함수를 도입했습니다.
SELECT col1, LISTAGG(col2, ', ') WITHIN GROUP (ORDER BY col2) AS names FROM table_x GROUP BY col1
Oracle 10g 이하 버전에서는 맞춤 기능을 사용합니다
Oracle 10g 이하의 경우 사용자 정의 함수를 생성할 수 있습니다.
CREATE OR REPLACE FUNCTION get_comma_separated_value (input_val IN NUMBER) RETURN VARCHAR2 IS return_text VARCHAR2(10000) := NULL; BEGIN FOR x IN (SELECT col2 FROM table_name WHERE col1 = input_val) LOOP return_text := return_text || ',' || x.col2; END LOOP; RETURN LTRIM(return_text, ','); END; /
사용방법:
SELECT col1, get_comma_separated_value(col1) FROM table_name
참고: 일부 이전 Oracle 버전에서는 지원되지 않는 기능 WM_CONCAT
이 있습니다.
MySQL의 대체 방법(비교용)
MySQL에서는 GROUP_CONCAT
함수를 사용할 수 있습니다:
SELECT col1, GROUP_CONCAT(col2) FROM table_name GROUP BY col1
위 내용은 Oracle에서 GROUP_CONCAT 기능을 달성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!