Если я вас правильно понял, вам нужно присоединиться к таблице с датой родительского поста. Если это доступно, что-то вроде этого должно сделать:
DECLARE @X TABLE
(
ID INT NOT NULL IDENTITY PRIMARY KEY,
parentID INT,
datePosted DATE NOT NULL
)
INSERT INTO @X (parentID, datePosted) VALUES
(NULL, '2010-01-01'),
(NULL, '2010-01-02'),
(1, '2010-01-03'),
(1, '2010-01-04'),
(1, '2010-01-05'),
(2, '2010-01-06')
SELECT
Post.parentID, Post.datePosted
FROM @X AS Post
LEFT JOIN @X AS Parent ON Post.parentID = Parent.ID
ORDER BY
-- Order by post date, or rather the parent's post date if one exists
COALESCE(Parent.datePosted, Post.datePosted)
-- Order by reply date
Post.datePosted
Это дает такой вывод:
parentID datePosted
-------- ----------
NULL 2010-01-02
2 2010-01-06
NULL 2010-01-01
1 2010-01-03
1 2010-01-04
1 2010-01-05
Обратите внимание, что это прервется, если ответы могут иметь ответы по очереди; вам нужно что-то более надежное. В MS SQL я бы использовал CTE, но я не очень знаком с Sqlite.