문자결합 ( 커서 , 쿼리 )

by kay posted Jul 01, 2013
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
USE tempdb
GO
--테스트 자료 만들기
CREATE TABLE 가족 (id INT, Val VARCHAR(10))
INSERT 가족 VALUES (1,'한수')
INSERT 가족 VALUES (2,'지우')
INSERT 가족 VALUES (3,'선우')
INSERT 가족 VALUES (4,'숙')
INSERT 가족 VALUES (5,'찬우')
-- 데이터 확인
SELECT * FROM 가족
GO

--커서를 쓰는 방법
SET NOCOUNT ON
DECLARE @str VARCHAR(100), @tempVar VARCHAR(20)
SET @str=''
DECLARE my_cur CURSOR 
	FOR SELECT Val FROM 가족
OPEN my_Cur
FETCH NEXT FROM my_Cur INTO @tempVar
WHILE @@FETCH_STATUS = 0
BEGIN
            SET @str=@str + @tempVar + ','
            FETCH NEXT FROM my_Cur INTO @tempVar
END
--마지막 불필요한 쉼표 제거
SELECT SUBSTRING(@str , 1,Len(@str)-1)
CLOSE my_cur
DEALLOCATE my_cur
GO


--쿼리를 쓰는 방법
DECLARE @str VARCHAR(100)
SELECT @str= COALESCE(@str+',' , '') + Val FROM 가족
SELECT @str
GO
--정리
DROP TABLE 가족
GO


문자결합.png


보통 커서를 사용했었는데 쿼리로 처리하는 방법을 이번에 정원혁강사님 교육 중 알게되서 정리합니다..

COALESCE 를 이렇게 사용할수도 있네요..