집 >데이터 베이스 >MySQL 튜토리얼 >Oracle에서 MySQL의 GROUP_CONCAT 기능을 달성하는 방법은 무엇입니까?
MySQL에서는 특정 열을 기준으로 그룹화된 값을 연결하는 데 GROUP_CONCAT 함수가 널리 사용됩니다. Oracle은 대안을 통해 유사한 기능을 제공합니다.
<code class="language-sql">SELECT col1, LISTAGG(col2, ', ') WITHIN GROUP (ORDER BY col2) AS "names" FROM table_x GROUP BY col1;</code>
출력:
col1 | names |
---|---|
1 | a, b |
2 | c, d, e |
<code class="language-sql">CREATE OR REPLACE FUNCTION get_comma_separated_value(input_val 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; /</code>
이 기능을 사용하여 쿼리:
<code class="language-sql">SELECT col1, get_comma_separated_value(col1) FROM table_name;</code>
참고: 이 기능은 대규모 데이터 세트를 처리할 때 메모리 문제가 발생할 수 있으므로 주의해서 사용하세요.
일부 이전 버전의 Oracle에서는 WM_CONCAT이라는 지원되지 않는 함수를 제공합니다. 그러나 최신 Oracle 버전에서는 LISTAGG 또는 사용자 정의 기능을 사용하는 것이 좋습니다.
완전성을 위해 MySQL GROUP_CONCAT 쿼리가 아래에 제공됩니다.
<code class="language-sql">SELECT col1, GROUP_CONCAT(col2) FROM table_name GROUP BY col1;</code>
위 내용은 Oracle에서 MySQL의 GROUP_CONCAT 기능을 달성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!