질문:
Oracle에서 지정된 열의 여러 값을 쉼표로 구분된 단일 문자열로 연결하는 방법은 무엇입니까? 입력 데이터는 특정 형식을 따르며 원하는 출력은 각 고유 키에 대한 값을 그룹화하고 연결해야 합니다.
정답:
Oracle 11g 이상:
LISTAGG 기능 사용:
<code class="language-sql">SELECT col1, LISTAGG(col2, ', ') WITHIN GROUP (ORDER BY col2) "names" FROM table_x GROUP BY col1</code>
Oracle 10g 이하:
한 가지 방법은 사용자 정의 함수를 만드는 것입니다.
<code class="language-sql">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; /</code>
사용방법:
<code class="language-sql">SELECT col1, get_comma_separated_value(col1) FROM table_name</code>
참고: 11g 이전 Oracle 버전은 WM_CONCAT 함수에 대한 지원이 제한되어 있지만 잠재적인 문제로 인해 사용이 중단되었습니다(자세한 내용은 Oracle 설명서 참조).
MySQL(참고용):
GROUP_CONCAT 기능 사용 가능:
<code class="language-sql">SELECT col1, GROUP_CONCAT(col2) FROM table_name GROUP BY col1</code>
위 내용은 이전 Oracle 버전에는 MySQL의 GROUP_CONCAT에 해당하는 LISTAGG가 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!