行合并

[MSSQL] Row Merge, 여러 Row 합치기

 

- 여러개의 Row로 된 데이터를 각 키마다 묶어 하나로 보일때 사용

 

 

1. 기초자료

  1. CREATE  TABLE   #TEMP1  
  2. (  
  3.     Code        INT,  
  4.     VALUE       VARCHAR(100)  
  5. )  
  6.   
  7. INSERT INTO #TEMP1 (Code,Value) VALUES ( 1, '나는' )  
  8. INSERT INTO #TEMP1 (Code,Value) VALUES ( 1, '프로그램이' )  
  9. INSERT INTO #TEMP1 (Code,Value) VALUES ( 1, '좋다' )  
  10.   
  11. INSERT INTO #TEMP1 (Code,Value) VALUES ( 2, '너도' )  
  12. INSERT INTO #TEMP1 (Code,Value) VALUES ( 2, '프로그램이' )  
  13. INSERT INTO #TEMP1 (Code,Value) VALUES ( 2, '좋냐?' )  

 

 

 

 

 

2. FOR XML 사용

  1. --- element 가 붙음 ---  
  2. SELECT  Value  
  3. FROM    #TEMP1  
  4. FOR XML PATH('')  
  5.   
  6. --- element 가 안 붙음 결과 (컬럼을 변형하여 명을 지정안함) ---  
  7. SELECT  Value + ' '  
  8. FROM    #TEMP1  
  9. FOR XML PATH('')  

 

 < element 가 붙음 결과 >

 

 < element 가 안 붙음 결과 (컬럼을 변형하여 명을 지정안함)>

 

 

 

 

3. Column SubQueyr 이용

  1. SELECT  Code,(  
  2.             SELECT  Value + ' '   
  3.             FROM    #TEMP1  
  4.             WHERE   Code    = A.Code  
  5.             FOR XML PATH('')  
  6.             )  
  7. FROM    #TEMP1 A  

 

 

 

 

 

4. DISTINCT 사용

  1. SELECT  DISTINCT Code,(  
  2.             SELECT  Value + ' '   
  3.             FROM    #TEMP1  
  4.             WHERE   Code    = A.Code  
  5.             FOR XML PATH('')  
  6.             )  
  7. FROM    #TEMP1 A  

 

 

 

 

5. 끝의 스페이스 문자 ' '를 없애기 위해 Stuff 또는 SUBSTRING 등 문자열 함수 사용

posted @ 2014-07-17 13:02  汉城  阅读(218)  评论(0编辑  收藏  举报