2012-02-14 9 views
1

次の条件に従って値を持つテンポラリテーブルを生成するためにクエリがスタックされています。カラム値に応じて既存のテーブルから新しいテンポラリテーブルを生成

(表1)を以下のようにIテーブルを有する

ID 
1 
5 
9 
3 
10 

IはID=1がある場合ID=5私は5つの行が必要な場合、私は、1行が必要ように私は、ID列値に応じて新たなレコードセットを望んように一時テーブルでは、テーブルを置いては次のようになりますので..

ID Val 
1  Null 
5  Null 
5  Null 
5  Null 
5  Null 
5  Null 

など

を私はトンを使用していますこれを達成するためのループ、1つのループはIDを通り、内側のループはIDの値を通りますが、これを行うにはもっと簡単な方法が必要です。

+0

そのSQL Server 2008の – Vikram

+0

@Vikram - こんにちは私はちょうどそれを再度実行して私の答えを更新しました...私はあなたが前のクエリを持っている問題を解決する1以上varaiableのinsertdataを追加しました....だけで実行でき、それは働いているかどうかわかりません –

答えて

4

数値表を使用できます。ここではspt_valuesを使用しています。値は2047です。これで十分ではない場合は、独自の数値表を作成する必要があります。

declare @T table(ID int) 

insert into @T values (1),(5),(9),(3),(10) 

select T.ID 
from @T as T 
    inner join master..spt_values as N 
    on N.number between 1 and T.ID 
where N.type = 'P'  
order by T.ID 
+0

それは素晴らしい作品です! – Vikram

+0

それは本当に良いです! +1 – shenhengbin

関連する問題