반응형
group 별로 컬럼 내용 합치고 싶을때...
오라클에서는 LISTAGG mysql에서는 GROUP_CONCAT 을 썼었는데...
MSSQL에서는 또 다르다..
[TABLE]
ID | NAME |
ab | 사과 |
ab | 포도 |
cd | 귤 |
cd | 곶감 |
cd | 호떡 |
이런 테이블이 있다고 칩시다.
아래 쿼리를 수행하면 다음과 같이 결과가 나온다.
SELECT DISTINCT ID
STUFF( (select ','+name from table p where p.id = b.id for xml path('') ),1,1,'') AS NAME2
FROM table B
ID | NAME |
ab | 사과,포도 |
cd | 귤,곶감,호떡 |
** STUFF : 문자열의 시작위치와 크기를 지정하여 원하는 문자로 치환
STUFF('[문자열]','[시작위치]','[크기]','[치환문자]')
** FOR XML PATH : 쿼리의 결과 데이터를 XML 형태로 표현
반응형
'코딩 관련 > DB' 카테고리의 다른 글
[MSSQL] varbinary은(는) text과(와) 호환되지 않습니다. (0) | 2023.07.17 |
---|---|
[MSSQL] ROW_NUMBER OVER PARTITION BY ORDER BY (0) | 2022.11.24 |
[MSSQL] 프로시저 생성, 사용, 파라미터 (0) | 2022.10.17 |
[MSSQL] TABLE 특정 행만 select하기 (0) | 2022.10.17 |
[MSSQL] IDENTITY_INSERT 에러 (0) | 2022.10.11 |