Non è chiarito se l'ordine del set di risultati è importante, quindi potresti anche provare:
SELECT name,
value
FROM MyTable
WHERE id = 5
AND id NOT IN
(
SELECT id
FROM MyTable
WHERE id = 0
GROUP BY MyTable.id
)
UNION
SELECT name,
value
FROM MyTable
WHERE id = 0
AND name NOT IN
(
SELECT name
FROM MyTable
WHERE id = 5
GROUP BY MyTable.name
)
Dichiarazione di non responsabilità:testato in SQL Server, ma non utilizzando nulla di specifico per quella versione di SQL.