Sql server SQL Server中的自定义排序

Sql server SQL Server中的自定义排序,sql-server,Sql Server,我有一张这样的桌子: Table_id | Name | Mark | IDTable -----------+----------+---------+------------ 1 | John | 12 | NULL 2 | Alex | 15 | NULL 3 | Josh | 11 | NULL 4 | Merry | 17

我有一张这样的桌子:

Table_id   |   Name   |   Mark  | IDTable
-----------+----------+---------+------------
    1      |   John   |   12    |   NULL
    2      |   Alex   |   15    |   NULL
    3      |   Josh   |   11    |   NULL
    4      |   Merry  |   17    |    2
    5      |   Gary   |   13    |   NULL
    6      |   Jimmy  |   18    |    1
Table_id   |   Name   |   Mark  | IDTable
-----------+----------+---------+------------
    1      |   John   |   12    |   NULL
    6      |   Jimmy  |   18    |    1
    2      |   Alex   |   15    |   NULL
    4      |   Merry  |   17    |    2
    3      |   Josh   |   11    |   NULL
    5      |   Gary   |   13    |   NULL
我想将表排序为如下所示:

Table_id   |   Name   |   Mark  | IDTable
-----------+----------+---------+------------
    1      |   John   |   12    |   NULL
    2      |   Alex   |   15    |   NULL
    3      |   Josh   |   11    |   NULL
    4      |   Merry  |   17    |    2
    5      |   Gary   |   13    |   NULL
    6      |   Jimmy  |   18    |    1
Table_id   |   Name   |   Mark  | IDTable
-----------+----------+---------+------------
    1      |   John   |   12    |   NULL
    6      |   Jimmy  |   18    |    1
    2      |   Alex   |   15    |   NULL
    4      |   Merry  |   17    |    2
    3      |   Josh   |   11    |   NULL
    5      |   Gary   |   13    |   NULL
我的意思是,首先尝试按
Table\u ID
排序,但是如果
IDTable
等于
Table\u ID

将其显示在该行下。

对于示例数据,COALESCE将起作用:

ORDER BY COALESCE(IDTable, Table_id )
,        IDTable

对于您的示例数据,合并将起作用:

ORDER BY COALESCE(IDTable, Table_id )
,        IDTable

IDTable
Table\u id
的子级吗?如果是,你能有多个孩子吗?也就是说,
Table\u id
1有一个孩子的
Table\u id
为6,还有一个孩子的
Table\u id
为7,等等@Larnu,是的,IDTable是Table\u id的孩子,但它只能有一个孩子。
IDTable
Table\u id
的孩子吗?如果是,你能有多个孩子吗?也就是说,
Table\u id
1有一个子表的
Table\u id
为6,它也有一个子表的
Table\u id
为7,等等@Larnu,是的,IDTable是Table\u id子表,但它只能有一个子表。可能要在末尾添加
,IDTable
。这将确保值为
NULL
的值将显示在顶部,然后是子表。可能需要在末尾添加
,IDTable
。这将确保值为
NULL
的值将显示在顶部,然后显示子表。