SQL 쿼리를 사용하여 쉼표로 구분 된 목록을 작성
]여러 테이블에 응용 프로그램 및 리소스 데이터가 포함 된 경우 일반적인 작업은 모든 리소스 이름과 쉼표로 구분 된 관련 응용 프로그램 이름을 나열하는 테이블을 나열하는 것입니다. 단일 SQL 쿼리로이를 달성하려면 다음 단계를 따르십시오.
mysql :
SELECT r.name,
GROUP_CONCAT(a.name SEPARATOR ',') AS application_names
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
SQL Server (2005) :
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(','), '') AS application_names
FROM RESOURCES r
SQL Server (2017) :
SELECT r.name,
STRING_AGG(a.name, ',') AS application_names
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
Oracle : Oracle은 다양한 문자열 집계/연결 옵션을 제공합니다. 특정 구문 및 요구 사항은 문서를 참조하십시오.
이 쿼리는 "Resources"테이블을 "ApplicationSresources"및 "Applications"테이블과 연결하여 리소스 이름과 관련 응용 프로그램 이름을 검색합니다. 그런 다음 "group_concat", "stits"또는 "string_agg"함수를 사용하여 응용 프로그램 이름을 각 리소스의 쉼표로 구분 된 목록에 연결합니다. 가독성을 향상시키기 위해 결과 열에 별칭 application_names
를 추가했습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3