具有ASC子行的DESC父行

时间:2015-04-27 19:46:33

标签: tsql group-by

我有一张桌子

$config['uri_protocol']    = 'AUTO';

我试图通过DESC Date获取父节点的结果,但是尝试通过子节点的ASC SubID获得结果。 例如,我想


$db['default']['hostname'] = 'http://www.example.com';

这可能与Group By有关还是更复杂?

2 个答案:

答案 0 :(得分:0)

这样做有几种可能性,这里有一个简单的例子:

select *
from t
order by
COALESCE(ParentId, MainId) DESC, SubID ASC

此查询假定较新的行将具有更高的MainId,因此不是按日期排序,而是按desc ord中的父ID排序

示例小提琴http://sqlfiddle.com/#!6/40fa7/4

答案 1 :(得分:0)

一种不对日期和ID之间的相关性做出假设的方法,并且不会在2.10

之前对2.2之类的字符串进行排序
SELECT c.*
FROM   Table1 c
       LEFT JOIN Table1 p
         ON c.SubID LIKE CAST(p.MainID AS VARCHAR(10)) + '._%'
ORDER  BY isnull(p.Date, c.Date) DESC,
          CAST('/' + c.SubID + '/' AS HIERARCHYID)