Sql 在父行之后连续排序子相关行

Sql 在父行之后连续排序子相关行,sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,如果我有一张这样的桌子 ID | ParentID | Name 1 | NULL | A 2 | NULL | B 3 | 1 | C ID | ParentID | Name 1 | NULL | A 3 | 1 | C 2 | NULL | B 如何对其进行排序

如果我有一张这样的桌子

 ID   |   ParentID   |   Name
  1   |    NULL      |    A
  2   |    NULL      |    B
  3   |      1       |    C
 ID   |   ParentID   |   Name
  1   |    NULL      |    A
  3   |      1       |    C
  2   |    NULL      |    B
如何对其进行排序,使其像这样返回

 ID   |   ParentID   |   Name
  1   |    NULL      |    A
  2   |    NULL      |    B
  3   |      1       |    C
 ID   |   ParentID   |   Name
  1   |    NULL      |    A
  3   |      1       |    C
  2   |    NULL      |    B
试试这个。您可以使用下面的查询

select * from test
order by coalesce(parentid,id)

这里面的逻辑是什么?