我有sql查询来获取文件的位置
select FileName, FileLocation from tblFile
Run Code Online (Sandbox Code Playgroud)
和数据一样
FileName FileLocation
file1 \\server1\folder1\file1
file1 \\server2\folder1\file1
file2 \\server1\folder1\file2
file2 \\server2\folder1\file2
Run Code Online (Sandbox Code Playgroud)
我想获得如下数据:
FileName FileLocations
file1 \\server1\folder1\file1, \\server2\folder1\file1
file2 \\server1\folder1\file2, \\server2\folder1\file2
Run Code Online (Sandbox Code Playgroud)
如何在sql server中获得以上结果?
MS SQL Server 2008架构设置:
create table tblFile
(
FileName varchar(10),
FileLocation varchar(30)
)
insert into tblFile values
('file1', '\\server1\folder1\file1'),
('file1', '\\server2\folder1\file1'),
('file2', '\\server1\folder1\file2'),
('file2', '\\server2\folder1\file2')
Run Code Online (Sandbox Code Playgroud)
查询1:
select T1.FileName,
(
select ', '+T2.FileLocation
from tblFile as T2
where T1.FileName = T2.FileName
for xml path(''), type
).value('substring(text()[1], 3)', 'varchar(max)') as FileLocations
from tblFile as T1
group by T1.FileName
Run Code Online (Sandbox Code Playgroud)
结果:
| FILENAME | FILELOCATIONS |
---------------------------------------------------------------
| file1 | \\server1\folder1\file1, \\server2\folder1\file1 |
| file2 | \\server1\folder1\file2, \\server2\folder1\file2 |
Run Code Online (Sandbox Code Playgroud)