DECLARE @id INT = 6
;WITH parent AS
(
SELECT id, parentId, 1 AS [level] from tbl WHERE id = @id
UNION ALL
SELECT t.id, t.parentId, [level] + 1 FROM parent
INNER JOIN tbl t ON t.id = parent.parentid
)
SELECT TOP 1 id FROM parent ORDER BY [level] DESC
@ TechDo का जवाब मानता है कि सबसे कम आईडी माता-पिता होगी। यदि आप इस पर भरोसा नहीं करना चाहते हैं तो उपरोक्त क्वेरी गहराई से क्रमबद्ध होगी।