Il n'est pas précisé si l'ordre du jeu de résultats est important, alors autant essayer :
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
)
Clause de non-responsabilité :testé dans SQL Server, mais sans rien utiliser de spécifique à cette version de SQL.