안녕하세요.
현재 데이터베이스는 SQL-Sever를 사용하고 있습니다.
목록을 출력해야 되는데 공통코드를 조인해서 보여주어야 합니다.
한가지 문제가 있는데 공통코드 컬럼이 4060003,4060005 이렇게 저장되는 컬럼이 있습니다.
제가 원하는 결과는 사과,배 이런식으로 조인해서 보여주고 싶은어떻게 해야될지 감이 안옵니다.
공통코드 테이블의 CommonID와 샘플 테이블의 Name을 조인해서 목록을 보여주어야합니다.
답변 부탁드리겟습니다.
CREATE TABLE [dbo].[CommonCode](
[CommonID] [int] NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[CommonTypeID] [int] NULL,
[UseYN] [int] NOT NULL)
CREATE TABLE [dbo].[Sample](
[Seq] [int] NOT NULL,
[Name] [varchar(100)] NULL,
[UseYN] [int] NOT NULL)
WITH CommonCode AS ( SELECT 4060003 CommonID, '사과' Name, 1 UseYN UNION ALL SELECT 4060005, '배', 1 ) , Sample AS ( SELECT 1 Seq, '4060003,4060005' Name, 1 UseYN ) SELECT a.Seq , a.Name , STRING_AGG(c.Name, ',') WITHIN GROUP(ORDER BY CHARINDEX(CONCAT(',', c.CommonID, ','), CONCAT(',', a.Name, ',')) ) names FROM Sample a INNER JOIN CommonCode c ON CHARINDEX(CONCAT(',', c.CommonID, ','), CONCAT(',', a.Name, ',')) > 0 WHERE a.UseYN = 1 AND c.UseYN = 1 GROUP BY a.Seq, a.Name ;