2017-03-22 7 views
-1

私は以下のようなタイムクエリーを持っています。クエリヘルプ。行を5つの異なる行に分割する

ID, StaffName, PName, Description, startd1, endd1, startt1, endt1, startd2, endd2, startt2, endt2, startd3, endd3, startt3, endt3, startd4, endd4, startt4, endt4, startd5, endd5, startt5, endt5 

私はそれが任意の助けをいただければ幸いです

ID, StaffName, PName, Description, startd1, endd1, startt1, endt1 
ID, StaffName, PName, Description, startd2, endd2, startt2, endt2 
ID, StaffName, PName, Description, startd3, endd3, startt3, endt3 
ID, StaffName, PName, Description, startd4, endd4, startt4, endt4 
ID, StaffName, PName, Description, startd5, endd5, startt5, endt5 

が表示されますので、行を分割する必要があります。

+2

使用しているデータベースで質問にタグを付けてください。 –

答えて

1

SQLでの一般的な方法は、union allを使用することです:

select ID, StaffName, PName, Description, startd1 as startd, endd1 as endd, startt1 as startt, endt1 as endt 
from t 
union all 
select ID, StaffName, PName, Description, startd2, endd2, startt2, endt2 
from t 
union all 
select ID, StaffName, PName, Description, startd3, endd3, startt3, endt3 
from t 
union all 
select ID, StaffName, PName, Description, startd4, endd4, startt4, endt4 
from t 
union all 
select ID, StaffName, PName, Description, startd5, endd5, startt5, endt5 
from t; 

あなたは大きなテーブルを持っている場合は、より効率的な方法があります。これは、サブクエリごとに一度テーブルをスキャンする必要があります。

カラム名は最初のサブクエリに由来します。カラム名は最初のサブクエリの名前になります。

関連する問題