इसे यह करना चाहिए:
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
यह आपको कई प्राथमिकता स्तरों की भी अनुमति देता है, जिसमें उच्चतम वह है जिसे आप वापस करना चाहते हैं (यदि आपके पास 1 और 2 था, तो 2 वापस कर दिया जाएगा)।
मैं यह भी कहूंगा कि ऐसा लगता है कि डीबी में कुछ डिज़ाइन समस्याएं हैं। मेरा दृष्टिकोण होता:
My_Table (आईडी, नाम) My_Values (आईडी, प्राथमिकता, मान) आईडी से आईडी पर एक एफके के साथ। My_Table और id में id पर PK, My_Values में प्राथमिकता। बेशक, मैं उपयुक्त तालिका नामों का भी उपयोग करूंगा।