SQL Server管理工作室 -SQL如何將3條語句結果合併爲一條結果
如何在while循環中合併?
PARENTID是邁向childID的
一個內部關係WHILE EXISTS (SELECT ParentID FROM Table1)
BEGIN
SELECT * FROM FinalTable WHERE FinalTableID = (SELECT c.ChildID FROM Table1 as c WHERE c.ChildID = (SELECT d.ChildID FROM Table1 as d WHERE d.ChildID = @MyCounter))
IF(SELECT e.ParentID FROM Table1 as e WHERE e.ChildID = @MyCounter) IS NULL
BREAK
ELSE
SET @MyCounter = (SELECT d.ParentID FROM Table1 as d WHERE d.ChildID = @MyCounter)
CONTINUE
END
此代碼目前導致多行集合包含不同的結果,是有可能的一切合併成一個完整的結果?
FinalTable
-------------------------------
| ID Name Text ChildID
| 1 1 Foo1 Bar1 1
| 2 2 oof1 Bra1 1
| 3 3 ofo1 Rab1 1
--------------------------------
FinalTable
--------------------
| ID Row2 Row3 ChildID
| 1 8 Foo2 Bar2 2
| 2 9 oof2 Bra2 2
| 3 10 ofo2 Rab2 2
--------------------
FinalTable
--------------------
| ID Name Text ChildID
| 1 14 Foo3 Bar3 3
| 2 17 oof3 Bra3 3
| 3 19 ofo3 Rab3 3
--------------------
通緝的結果:
FinalTable
--------------------
| ID Name Text ChildID
| 1 1 Foo1 Bar1 1
| 2 2 oof1 Bra1 1
| 3 3 ofo1 Rab1 1
| 4 8 Foo2 Bar2 2
| 5 9 oof2 Bra2 2
| 6 10 ofo2 Rab2 2
| 7 14 Foo3 Bar3 3
| 8 17 oof3 Bra3 3
| 9 19 ofo3 Rab3 3
--------------------
請標記您使用的DBMS – TheGameiswar
您不需要'while'循環。只需使用聯合和'row_number()'在整個結果中生成唯一編號 –
@a_horse_with_no_name我很想知道如何在沒有時間的情況下循環同一張表,您能否提供指導或解釋? – Kapein