2013-02-19 3 views
-1

입력 :분리 기호가 "-", ";"인 열을 행으로 변환합니다.

 select(Emp_no, ADate, Atime) 

 12333,  12-02-2013, 09.12 - 12.30 
     12333,  12-02-2013, 12.32 - 17.30 

     13444,  12-02-2013, 09.10 - 18.30 

     14444,  12-02-2013, 09.13 - 12.30 
     14444,  12-02-2013, 17.20 

출력 :

 12333,  12-02-2013, 09.12 - 12.30 ; 12.32 - 17.30 
     13444,  12-02-2013, 09.10 - 18.30 
     14444,  12-02-2013, 09.13 - 12.30 ; 17.20 

Pls는이

관련, Nirmal.M을 도와

답변

4

당신은 사용할 수 있습니다

select distinct t1.Emp_no, 
    t1.ADate, 
    STUFF(
     (SELECT '; ' + cast(t2.Atime as varchar(50)) 
      FROM yourtable t2 
      where t1.Emp_no = t2.Emp_no 
      and t1.ADate = t2.ADate 
      FOR XML PATH ('')) 
      , 1, 1, '') AS Atime 
from yourtable t1 

SQL Fiddle with Demo

를 참조 아니면 CROSS APPLYFOR XML PATH 당신은 사용할 수 있습니다 :이 비슷한 단일 행에 여러 행을 연결하는

select distinct t1.Emp_no, 
    t1.ADate, 
    left(t2.Atime, len(t2.atime)-1) ATime 
from yourtable t1 
cross apply 
(
    select t2.Atime + '; ' 
    from yourtable t2 
    where t1.Emp_no = t2.Emp_no 
    and t1.ADate = t2.ADate 
    FOR XML PATH('') 
) t2 (Atime) 

참조 SQL Fiddle with Demo