Dette burde gøre 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
Dette giver dig også mulighed for at have flere prioritetsniveauer, hvor det højeste er det, du ønsker at returnere (hvis du havde en 1 og 2, ville 2 blive returneret).
Jeg vil dog også sige, at det ser ud til, at der er nogle designproblemer i DB. Min tilgang ville have været:
My_Table (id, name)My_Values (id, priority, value) med en FK på id til id. PK'er på id i My_Table og id, prioritet i My_Values. Selvfølgelig ville jeg også bruge passende tabelnavne.