Detta borde göra det:
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
Detta gör att du också kan ha flera prioritetsnivåer där den högsta är den du vill returnera (om du hade en 1 och 2 skulle 2:an returneras).
Jag kommer också att säga att det verkar som att det finns några designproblem i DB. Mitt tillvägagångssätt skulle ha varit:
My_Table (id, name)My_Values (id, priority, value) med en FK på id till id. PK:er på id i My_Table och id, prioritet i My_Values. Självklart skulle jag också använda lämpliga tabellnamn.