South Africa

Table key

 * Winner
 * Second place
 * Third place
 * Automatically qualified to the final
 * Did not qualify for the final or disqualified
 * Last place
 * Did not compete

{| class="sortable wikitable" !Edn. !Host City !Artist !Song !Final !Points !Semi !Points
 * align="center" |1
 * 🇫🇷 Paris
 * colspan="6" rowspan="10" bgcolor="#ececec" align="center" |Did not compete
 * align="center" |2
 *  Amsterdam
 * align="center" |3
 * 🇭🇷 Zagreb
 * align="center" |4
 * 🇫🇮 Helsinki
 * align="center" |5
 * 🇳🇴 Oslo
 * align="center" |6
 * 🇭🇺 Budapest
 * align="center" |7
 * 🇬🇧 London
 * align="center" |8
 * 🇬🇧 Glasgow
 * align="center" |9
 * 🇰🇿 Astana
 * align="center" |10
 * 🇲🇹 Valletta
 * align="center" |11
 * 🇰🇵 Pyongyang
 * Odyssey ft. Amara Abonta
 * Fly
 * style="text-align:center;" |14
 * style="text-align:center;" |93
 * align="center" bgcolor="#cc9966" |3
 * align="center" bgcolor="#cc9966" |142
 * align="center" |12
 * 🇰🇷 Seoul
 * colspan="6" rowspan="45" bgcolor="#ececec" align="center" |Did not compete
 * align="center" |13
 * 🇸🇪 Stockholm
 * align="center" |14
 * 🇧🇷 Brasilia
 * align="center" |15
 * 🇫🇷 Marseille
 * align="center" |16
 * 🇦🇺 Canberra
 * align="center" |17
 * 🇧🇬 Sofia
 * align="center" |18
 * 🇧🇬 Plovdiv
 * align="center" |19
 * 🇱🇹 Vilnius
 * align="center" |20
 * 🇷🇴 Bucharest
 * align="center" |21
 * 🇮🇱 Jerusalem
 * align="center" |22
 * 🇪🇪 Tallinn
 * align="center" |23
 * 🇮🇪 Dublin
 * align="center" |24
 * 🇷🇴 Constanta
 * align="center" |25
 * 🇰🇷 Busan
 * align="center" |26
 * 🇲🇰 Skopje
 * align="center" |27
 * 🇮🇪 Cork
 * align="center" |28
 * 🇺🇸 Washington
 * align="center" |29
 * 🇸🇪 Gothenburg
 * align="center" |30
 * 🇦🇱 Tirana
 * align="center" |31
 * 🇷🇸 Belgrade
 * align="center" |32
 * 🇸🇬 Singapore
 * align="center" |33
 * 🇺🇸 New York
 * align="center" |34
 * 🇨🇦 Ottawa
 * align="center" |35
 * 🇦🇿 Baku
 * align="center" |36
 * 🇫🇴 Tórshavn
 * align="center" |37
 * 🇧🇾 Minsk
 * align="center" |38
 * 🇮🇱 Tel Aviv
 * align="center" |39
 *  Rotterdam
 * align="center" |40
 * 🇳🇴 Bergen
 * align="center" |41
 * 🇹🇷 Ankara
 * align="center" |42
 * 🇦🇿 Ganja
 * align="center" |43
 * 🇦🇺 Sydney
 * align="center" |44
 * 🇫🇮 Turku
 * align="center" |45
 * 🇷🇴 Cluj-Napoca
 * align="center" |46
 * 🇱🇧 Beirut
 * align="center" |47
 * 🇸🇰 Bratislava
 * align="center" |48
 * 🇦🇲 Yerevan
 * align="center" |49
 * 🇱🇻 Riga
 * align="center" |50
 * 🇲🇩 Chișinău
 * align="center" |51
 * 🇷🇺 Moscow
 * align="center" |52
 * 🇲🇦 Rabat
 * align="center" |53
 *  Maastricht
 * align="center" |54
 *  Sarajevo
 * align="center" |55
 * 🇰🇷 Incheon
 * align="center" |56
 * 🇦🇹 Vienna
 * align="center" |57
 * 🇳🇴 Trondheim
 * Ursine Vulpine ft. Annaca
 * Lovers Death
 * align="center" |4
 * align="center" |149
 * align="center" |8
 * align="center" |120
 * align="center" |58
 * 🇮🇪 Galway
 * Josh Wantie
 * Lose Myself
 * align="center" |6
 * align="center" |158
 * colspan="2" align="center" bgcolor="#99FF99" |Member of Big 6
 * align="center" |59
 * 🇦🇲 Gyumri
 * Aidin Caye ft. Kylah Jasmine
 * Run Away
 * align="center" |25
 * align="center" |28
 * colspan="2" align="center" bgcolor="#99FF99" |Member of Big 6
 * align="center" |60
 * 🇦🇿 Sumgait
 * colspan="6" rowspan="1" bgcolor="#ececec" align="center" |Did not compete
 * align="center" |61
 * 🇩🇪 Berlin
 * YouNotUs ft. Mi Casa
 * Chucks
 * colspan="2" align="center" bgcolor="#FFCDBD" |Failed to qualify
 * align="center" |22
 * align="center" |27
 * align="center" |62
 * 🇨🇦 Toronto
 * Elaine
 * Shine
 * align="center" |21
 * align="center" |156
 * align="center" |10
 * align="center" |78
 * align="center" |63
 * 🇫🇮 Espoo
 * align="center" |
 * align="center" |
 * align="center" |
 * align="center" |
 *  Maastricht
 * align="center" |54
 *  Sarajevo
 * align="center" |55
 * 🇰🇷 Incheon
 * align="center" |56
 * 🇦🇹 Vienna
 * align="center" |57
 * 🇳🇴 Trondheim
 * Ursine Vulpine ft. Annaca
 * Lovers Death
 * align="center" |4
 * align="center" |149
 * align="center" |8
 * align="center" |120
 * align="center" |58
 * 🇮🇪 Galway
 * Josh Wantie
 * Lose Myself
 * align="center" |6
 * align="center" |158
 * colspan="2" align="center" bgcolor="#99FF99" |Member of Big 6
 * align="center" |59
 * 🇦🇲 Gyumri
 * Aidin Caye ft. Kylah Jasmine
 * Run Away
 * align="center" |25
 * align="center" |28
 * colspan="2" align="center" bgcolor="#99FF99" |Member of Big 6
 * align="center" |60
 * 🇦🇿 Sumgait
 * colspan="6" rowspan="1" bgcolor="#ececec" align="center" |Did not compete
 * align="center" |61
 * 🇩🇪 Berlin
 * YouNotUs ft. Mi Casa
 * Chucks
 * colspan="2" align="center" bgcolor="#FFCDBD" |Failed to qualify
 * align="center" |22
 * align="center" |27
 * align="center" |62
 * 🇨🇦 Toronto
 * Elaine
 * Shine
 * align="center" |21
 * align="center" |156
 * align="center" |10
 * align="center" |78
 * align="center" |63
 * 🇫🇮 Espoo
 * align="center" |
 * align="center" |
 * align="center" |
 * align="center" |
 * align="center" |156
 * align="center" |10
 * align="center" |78
 * align="center" |63
 * 🇫🇮 Espoo
 * align="center" |
 * align="center" |
 * align="center" |
 * align="center" |
 * align="center" |
 * align="center" |
 * align="center" |