Das sollte es tun:
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
Auf diese Weise können Sie auch mehrere Prioritätsstufen haben, wobei die höchste diejenige ist, die Sie zurückgeben möchten (wenn Sie eine 1 und 2 hätten, würde die 2 zurückgegeben).
Ich werde jedoch auch sagen, dass es so aussieht, als ob es einige Designprobleme in der DB gibt. Mein Ansatz wäre gewesen:
My_Table (ID, Name)My_Values (ID, Priorität, Wert) mit einem FK auf ID zu ID. PKs auf ID in My_Table und ID, Priorität in My_Values. Natürlich würde ich auch passende Tabellennamen verwenden.