ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MS-SQL - for xml path 쿼리 한줄로
    프로그램/db 2013. 7. 21. 14:35
    row로 되어있는 값들을 한줄로 가공 시켜줌. cast를 해줌으로써 xml 형식으로 내보내래는 명령을 무시하고 문자열로 묶어준다.
    SELECT STUFF((SELECT ',' +  CAST(report_m_no AS VARCHAR) FROM report_p where report_m_subject in (721,726,735,744,749) FOR XML PATH('')), 1, 1, '')
    
    
    select (SELECT ',' +  CAST(report_m_no AS VARCHAR) FROM report_p where report_m_subject in (721,726,735,744,749) FOR XML PATH(''))
    
    
    select(SELECT report_m_no FROM report_p where report_m_subject in (721,726,735,744,749) FOR XML PATH(''))
    
    
    
    응용
    select distinct(subject_term),
    stuff((select ',' + CAST(subject_no as varchar) from subject as a where a.subject_term = b.subject_term  for XML PATH('')),1,1,'')
    from subject as b
    group by subject_term,subject_no
    
    for xml path('') xml 형식으로 만들어주는 함수 STUFF(content,1,1,'') substring 과 같은 함수 cast 가 들어가면 xml형식을 강제로 문자열로 만든다 응용 뷰테이블로 하나 만들어서 조인을 해주면 원하는 값 기준으로 한줄로 가져올수가 있다.

    '프로그램 > db' 카테고리의 다른 글

    MS-SQL - union all 예제  (0) 2013.07.21
    int(7) 이란?  (0) 2013.07.21
    MS-SQL - 통계쿼리  (0) 2013.07.21
    DB LINK  (0) 2013.07.21
    뒤죽박죽 인덱스 정렬  (0) 2013.07.21

    댓글

Designed by Tistory.