Dit zou het moeten doen:
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
Dit stelt je ook in staat om meerdere prioriteitsniveaus te hebben, waarbij de hoogste degene is die je wilt retourneren (als je een 1 en 2 had, zou de 2 worden geretourneerd).
Ik zal echter ook zeggen dat het lijkt alsof er enkele ontwerpproblemen zijn in de DB. Mijn aanpak zou zijn geweest:
My_Table (id, naam)My_Values (id, prioriteit, waarde) met een FK op id naar id. PK's op id in My_Table en id, prioriteit in My_Values. Ik zou natuurlijk ook de juiste tabelnamen gebruiken.