Ett alternativ skulle vara att använda UNION ALL med EXISTS :
SELECT *
FROM proxies
WHERE A='B'
UNION ALL
SELECT *
FROM proxies
WHERE A='C' AND NOT EXISTS (
SELECT 1
FROM proxies
WHERE A='B'
)
Detta kommer att returnera rader från proxies tabell där A='B' om de finns. Men om de inte finns kommer den att leta efter de raderna med A='C' .