Sunan an-Nasa'i, Volume 4, Book 35, Hadith 3817 (DarusSalam)

It was narrated that 'Adiyy bin Hatim said: "The Messenger of Allah said: 'Whoever swears an oath, then sees something better than it, let him leave his oath, and do that which is better, and offer expiation for it.'"

أَخْبَرَنَا هَنَّادُ بْنُ السَّرِيِّ، عَنْ أَبِي بَكْرِ بْنِ عَيَّاشٍ، عَنْ عَبْدِ الْعَزِيزِ بْنِ رُفَيْعٍ، عَنْ تَمِيمِ بْنِ طَرَفَةَ، عَنْ عَدِيِّ بْنِ حَاتِمٍ، قَالَ قَالَ رَسُولُ اللَّهِ صلى الله عليه وسلم ‏ "‏ مَنْ حَلَفَ عَلَى يَمِينٍ فَرَأَى غَيْرَهَا خَيْرًا مِنْهَا فَلْيَدَعْ يَمِينَهُ وَلْيَأْتِ الَّذِي هُوَ خَيْرٌ وَلْيُكَفِّرْهَا ‏" ‏ ‏.‏

sunnah.com