2017-03-06 13 views
-1

クエリ出力を水平に表示する必要があります。私はいくつかのサンプルデータを持っていますSql水平方向に出力を表示するクエリ

create table TestTable (id number, name varchar2(10)) 
    insert into TestTable values (1, 'John') 
    insert into TestTable values (2, 'Mckensy') 
    insert into TestTable values (3, 'Valneech') 
    insert into TestTable values (4, 'Zeebra') 
    select * from TestTable 

これは、出力を垂直ビューで取得します。

ID Name 
========== 
1 John 
2 Mckensy 
3 Valneech 
4 Zeebra 

ただし、私はそれを水平に表示する必要があります。

ID 1 2  3  4 
Name John Mckensy Valneech Zeebra 
+0

あなたは、これは、SQL管理スタジオで、またはアプリケーションのUIに表示されるようにしたいですか? –

+0

PIVOTクエリが必要ですか?これが役立つかどうかを確認してください。https://technet.microsoft.com/fi-fi/library/ms177410(v=sql.105).aspx – Sami

答えて

0
create table #TestTable (id int, name varchar(10)) 

insert into #TestTable values (1, 'John') 
insert into #TestTable values (2, 'Mckensy') 
insert into #TestTable values (3, 'Valneech') 
insert into #TestTable values (4, 'Zeebra') 


select * 
from 
(
    select * 
    from #TestTable 
) src 
pivot 
(
    max(name) 
    for id in ([1], [2], [3],[4]) 
) piv; 

出力は

1   2  3    4 
John Mckensy Valneech Zeebra 
0

また、以下のような動的なSQLクエリのものを使用することができます。

クエリ

declare @sql as varchar(max); 
select @sql = 'select ' + char(39) + 'Name' + char(39) + ' Id,' + stuff((
     select 
     ',max(case [Id] when ' + cast(id as varchar(10)) + ' then name end) [' 
     + cast([Id] as varchar(10)) + ']' 
     from TestTable 
     for xml path('') 
    ), 1, 1, ''); 

select @sql += 'from TestTable;'; 
exec(@sql); 
関連する問題