Assuming Microsoft SQL Server,
the ROW_NUMBER
function[
^] will do the trick:
WITH cteOrderedData As
(
SELECT
ID_NO,
DateOfDeath,
PostDate,
ROW_NUMBER() OVER
(
PARTITION BY
ID_NO
ORDER BY
CASE
WHEN DateOfDeath = PostDate THEN 0
ELSE 1
END,
PostDate DESC
) As RN
FROM
YourTable
)
SELECT
ID_NO,
DateOfDeath,
PostDate
FROM
cteOrderedData
WHERE
RN = 1
;