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