Cela devrait le faire :
SELECT
T1.id,
T1.name,
T1.value,
T1.priority
FROM
My_Table T1
LEFT OUTER JOIN My_Table T2 ON
T2.name = T1.name AND
T2.priority > COALESCE(T1.priority, -1)
WHERE
T2.id IS NULL
Cela vous permet également d'avoir plusieurs niveaux de priorité, le plus élevé étant celui que vous souhaitez renvoyer (si vous aviez un 1 et un 2, le 2 serait renvoyé).
Je dirai aussi cependant qu'il semble qu'il y ait des problèmes de conception dans la base de données. Mon approche aurait été :
My_Table (id, name)My_Values (id, priority, value)avec un FK sur id à id. PK sur id dans My_Table et id, priorité dans My_Values. Bien sûr, j'utiliserais aussi des noms de table appropriés.