我有一个包含以下字段的数据库表: DocumentID,ParentID,OrderBy
当ParentID不为null时,它与一个DocumentID匹配。 我正在尝试将父文档下的子文档分组,保持OrderBy排序顺序。
例如:
DocumentID ParentID OrderBy
36 null 3
167 75 4
60 null 8
75 null 7
正确的顺序是:
3, 7, 4, 8
P.S。:我不能使用WITH语句。我的客户端使用的是旧版本的SQL Server(2000)。
答案 0 :(得分:0)
你可以尝试一下...... 它检索父级的OrderBy值(如果存在的话),然后通过它排序,否则它按值按自己的顺序排序。据我所知,所有这些都是有效的SQL 2000语法
SELECTa.*
FROM YourTable a
ORDER BY ISNULL(
(SELECT OrderBy
FROM YourTable b
WHERE a.ParentId = b.DocumentId),
a.OrderBy), a.ParentId
结果
DocumentId ParentId OrderBy
36 NULL 3
75 NULL 7
167 75 4
60 NULL 8