Bạn có vẻ muốn khác biệt danh sách những người mà Dave đang nói chuyện:
select (case when receiver = 'Dave' then Sender else Receiver end)
from messages m
where 'Dave' in (Receiver, Sender)
group by (case when receiver = 'Dave' then Sender else Receiver end)
order max(date) desc;