2

ファイルの場所を取得するためのSQLクエリがあります

select FileName, FileLocation from tblFile

のようなデータ

FileName               FileLocation

file1                  \\server1\folder1\file1
file1                  \\server2\folder1\file1
file2                  \\server1\folder1\file2
file2                  \\server2\folder1\file2

次のようなデータを取得したいと思います。

FileName               FileLocations

file1                  \\server1\folder1\file1, \\server2\folder1\file1
file2                  \\server1\folder1\file2, \\server2\folder1\file2

SQLサーバーで上記の結果を得るにはどうすればよいですか?

4

1 に答える 1

5

SQLフィドル

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')

クエリ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

結果

| FILENAME |                                    FILELOCATIONS |
---------------------------------------------------------------
|    file1 | \\server1\folder1\file1, \\server2\folder1\file1 |
|    file2 | \\server1\folder1\file2, \\server2\folder1\file2 |
于 2013-02-06T13:46:30.480 に答える