원본 : http://ddoung2.tistory.com/327
USE [DBA]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[문자열합치기]') AND type in (N'U')) BEGIN
DROP TABLE [dbo].[문자열합치기]
END
CREATE TABLE [dbo].[문자열합치기](
[mSeq] [int] NULL,
[mName] [nvarchar](10) NULL
) ON [PRIMARY]
GO
INSERT INTO [문자열합치기] (mSeq, mName) VALUES
(1, '이승연'),
(1, '이승연'),
(1, '이승연'),
(1, '이승연'),
(2, '배수지'),
(2, '배수지'),
(2, '배수지'),
(2, '배수지'),
(2, '배수지'),
(2, '배수지'),
(3, '권보아'),
(3, '권보아'),
(3, '권보아'),
(3, '권보아'),
(4, '박보영'),
(4, '박보영')
SELECT * FROM [DBO].[문자열합치기]
////////////////////////////////////////////////////////
SELECT DISTINCT mSeq,
STUFF((
SELECT ',' + mName
FROM [DBO].[문자열합치기]
WHERE mSeq = A.mSeq
FOR XML PATH('')
),1,1,'') AS mName
FROM [DBO].[문자열합치기] AS A
///////////////////////////////////////////////////////////
SELECT mSeq,
STUFF((
SELECT ',' + mName
FROM [DBO].[문자열합치기]
WHERE mSeq = A.mSeq
FOR XML PATH('')
),1,1,'') AS mName
FROM [DBO].[문자열합치기] AS A
GROUP BY mSeqmysql의 group_concat()의 기능처럼 문자열을 합쳐준다.
성능이 느리다고 한다. 실제 쓸일이 있을때는 고려해봐야 할듯...
'programming > mssql' 카테고리의 다른 글
MSSQL 자동증가 컬럼 테이블 복사 (0) | 2013.02.26 |
---|---|
insert into select (0) | 2013.02.19 |
SQL Server 2005의 OVER절 (0) | 2012.12.24 |
시간 형식 함수 (0) | 2012.12.24 |
mysql 조건문 case (0) | 2012.05.08 |