0

SQL Serverの別のテーブルによって計算された列を使用してテーブルを作成するにはどうすればよいですか?

例えば:

TableA

    Name   SerialNoStart  SerialNoEnd
    A        1              3
    B        2              4
    C        1              1

SerialNoEndとの間のシリアル番号で新しいテーブルを作成したいSerialNoStart

次のような新しいテーブル:

TableB

   Name    SerialNo
   A          1
   A          2
   A          3
   B          2
   B          3
   B          4
   C          1

どうやって作るの?ありがとう!

4

1 に答える 1

3

次のように、再帰CTEを使用してデータを分割できます。

;with data(name, SerialNoStart, SerialNoEnd) as
(
    select name, SerialNoStart, SerialNoEnd
    from TableA
    union all
    select name, SerialNoStart +1, SerialNoEnd
    from data
    where SerialNoStart +1 <= SerialNoEnd
)
select name, SerialNoStart as SerialNo
from data
order by name

SQL FiddlewithDemoを参照してください

于 2013-01-30T16:22:56.700 に答える