제가 사용해 보지 않응 DB 라 잘 모르겠네요.
CASE 구문은 되는 것 같으니. 기본적인 문법만(GROUP BY, CASE) 사용해서 풀어보겠습니다.
아래는 MariaDB 에서 테스트한 내용입니다.
-- MariaDB -- WITH t AS ( SELECT 'A' cd, 1 no UNION ALL SELECT 'A', 2 UNION ALL SELECT 'B', 2 UNION ALL SELECT 'C', 1 UNION ALL SELECT 'D', 3 UNION ALL SELECT 'E', 1 UNION ALL SELECT 'E', 3 UNION ALL SELECT 'F', 2 UNION ALL SELECT 'F', 3 UNION ALL SELECT 'G', 1 UNION ALL SELECT 'G', 2 UNION ALL SELECT 'G', 3 ) SELECT * FROM (SELECT cd , SUBSTR(CONCAT( MAX(CASE no WHEN 1 THEN '&1' ELSE '' END) , MAX(CASE no WHEN 2 THEN '&2' ELSE '' END) , MAX(CASE no WHEN 3 THEN '&3' ELSE '' END) ), 2, 9) gb FROM t GROUP BY cd ) a WHERE gb = '1&2' ;