假設你有一個這樣的表:重複行加入
+----+--------+-------------+----------------+--------+
| Id | Parent | Description | NumberOfThings | Number |
+----+--------+-------------+----------------+--------+
| A | NULL | This is A | 1 | NULL |
| B | NULL | This is B | 3 | NULL |
| C | NULL | This is C | 2 | NULL |
+----+--------+-------------+----------------+--------+
,並要使用NumberOfThings
到X生孩子的事情號:
+-----+--------+-------------+----------------+--------+
| Id | Parent | Description | NumberOfThings | Number |
+-----+--------+-------------+----------------+--------+
| A | NULL | This is A | 1 | NULL |
| B | NULL | This is B | 3 | NULL |
| C | NULL | This is C | 2 | NULL |
| A-1 | A | This is A | 1 | 1 |
| B-1 | B | This is B | 1 | 1 |
| C-1 | C | This is C | 1 | 1 |
| B-2 | B | This is B | 1 | 2 |
| C-2 | C | This is C | 1 | 2 |
| B-3 | B | This is B | 1 | 3 |
+-----+--------+-------------+----------------+--------+
我怎麼會去這樣做?我有一個想法,我可以使用LEFT JOIN,也許可以使用某種通配符ON子句,但我不確定從哪裏開始。
這是使用SQL Server 2012,但我相信可以有一個解決方案不是特定於任何數據庫引擎。
SQL撥弄第一次嘗試:http://sqlfiddle.com/#!6/dcafc/2
您需要加入到某種類型的Numbers表中,其中聯接與Numbers表中的每個記錄匹配<='NumberOfThings'列。這將有助於:http://stackoverflow.com/questions/1393951/what-is-the-best-way-to-create-and-populate-a-numbers-table –