To powinno wystarczyć:
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
Pozwala to również mieć wiele poziomów priorytetów, z których najwyższy to ten, który chcesz zwrócić (jeśli masz 1 i 2, 2 zostaną zwrócone).
Powiem również, że wydaje się, że w DB występują pewne problemy projektowe. Moje podejście byłoby następujące:
Moja_Tabela (id, nazwa)Moje_Wartości (identyfikator, priorytet, wartość) z FK od id do id. PKs na id w My_Table i id, priorytet w My_Values. Oczywiście użyłbym też odpowiednich nazw tabel.