Mělo by to stačit:
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
To vám také umožňuje mít více úrovní priority, přičemž nejvyšší je ta, kterou chcete vrátit (pokud byste měli 1 a 2, vrátí se 2).
Také však řeknu, že se zdá, že v DB jsou nějaké konstrukční problémy. Můj přístup by byl:
My_Table (id, name)My_Values (id, priority, value) with FK on id to id. PK na id v My_Table a id, priorita v My_Values. Samozřejmě bych také použil vhodné názvy tabulek.