2016-07-14 5 views
0

NoOfRowsフィールドに基づいてn個の行を別のテーブル(B)に挿入する方法を教えてください。有効MSSQL NoOfRowsフィールドの数値に基づいてn個の行を別のテーブルに挿入

Table A Source Table 
    ID | NoOfRows 
    --------- 
    1 | 3 
    2 | 2 

Table B Created/Destination table 
    ID | enabled 
    --------- 
    1 | true 
    1 | true 
    1 | true 
    2 | true 
    2 | true 

は常に一つの方法は、数字のテーブルを使用して、真の

+0

今、私はあなたの質問にNと目的地テーブルが何か推測する必要がありますか? –

+0

私の謝罪私のexplinationは貧弱だった。表Aは自分の出身で、表Bは私の目的地です。テーブルBはテーブルAのNoOfRowsの番号に基づいて作成された3行を持つ必要があります – user1021779

+0

私はターゲットテーブルが通常の形式ではないので、これを行うことを望んでいない理由について興味がありますか? –

答えて

0

に設定されますちょうどフィールドです。

with n as (
     select row_number() over (order by (select null)) as n 
     from master..spt_values 
    ) 
select id, 1 as enabled 
from a join 
    n 
    on n.n <= a.count; 

環境内に別の番号の連番がある場合は、それを使用することができます。

また、「true」に「1」を使用します。 SQL Serverにはブール型がありません。

+0

私の謝罪私のexplinationは貧弱だった。表Aは自分の出身で、表Bは私の目的地です。テーブルBはテーブルAのNoOfRowsの番号に基づいて3行作成する必要があります – user1021779

0
INSERT INTO TableA (ID , [Count]) 
SELECT ID , COUNT(*) 
FROM TableB 
WHERE [enabled] = 'true' 
GROUP BY ID 
+0

私の憶測は私のexplinationが貧弱でした。表Aは自分の出身で、表Bは私の目的地です。したがって、表AのNoOfRowsの数に基づいて表bに3行の作成が必要です – user1021779

関連する問題