-1 sql t-sql sql-server sql-server-2008
输入:
select(Emp_no, ADate, Atime)
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
输出:
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
Run Code Online (Sandbox Code Playgroud)
您可以使用类似的东西将多行连接成一行:
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
Run Code Online (Sandbox Code Playgroud)
或者你可以使用一个CROSS APPLY具有FOR 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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |