집 >데이터 베이스 >MySQL 튜토리얼 >SQL 쿼리를 사용하여 쉼표로 구분된 목록을 생성하려면 어떻게 해야 합니까?
데이터베이스 작업 중에는 쉼표로 구분된 값 목록을 생성해야 하는 경우가 많습니다. 예를 들어 사용자 인터페이스의 특정 리소스와 연결된 모든 애플리케이션 목록을 표시할 수 있습니다. 각 리소스를 반복하고, 애플리케이션을 검색하고, 직접 연결하는 것이 가능하지만 이 접근 방식은 비효율적이며 시간이 많이 걸립니다.
다행히도 대부분의 SQL 데이터베이스는 내장된 문자열 연결 및 집계 함수를 제공합니다. 다음은 일반적으로 사용되는 여러 SQL 방언의 구현 방법입니다.
MySQL
<code class="language-sql">SELECT r.name, GROUP_CONCAT(a.name SEPARATOR ',') FROM RESOURCES r JOIN APPLICATIONSRESOURCES ar ON ar.resource_id = r.id JOIN APPLICATIONS a ON a.id = ar.app_id GROUP BY r.name</code>
SQL 서버(2005)
<code class="language-sql">SELECT r.name, STUFF((SELECT ',' + a.name FROM APPLICATIONS a JOIN APPLICATIONRESOURCES ar ON ar.app_id = a.id WHERE ar.resource_id = r.id GROUP BY a.name FOR XML PATH(''), TYPE).value('text()[1]','NVARCHAR(max)'), 1, LEN(','), '') FROM RESOURCES r</code>
SQL 서버(2017)
<code class="language-sql">SELECT r.name, STRING_AGG(a.name, ',') FROM RESOURCES r JOIN APPLICATIONSRESOURCES ar ON ar.resource_id = r.id JOIN APPLICATIONS a ON a.id = ar.app_id GROUP BY r.name</code>
오라클
Oracle은 다양한 문자열 연결 및 집계 옵션을 제공합니다. 사용 중인 버전의 특정 구문을 숙지하시기 바랍니다.
이러한 쿼리는 각 리소스에 대해 쉼표로 구분된 애플리케이션 목록을 효과적으로 생성하므로 단일 쿼리로 GUI에 필요한 정보를 제공할 수 있습니다.
위 내용은 SQL 쿼리를 사용하여 쉼표로 구분된 목록을 생성하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!