SQL Server中的自定义排序

时间:2018-01-22 09:21:06

标签: sql-server

我有一张这样的表:

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排序,但如果IDTable等于Table_id 在那一行下显示它。

1 个答案:

答案 0 :(得分:4)

对于您的样本数据,COALESCE可以运作:

ORDER BY COALESCE(IDTable, Table_id )
,        IDTable