что-то вроде этого может работать:
select a.filename, a.value
from <table> a
union
select replace(a.filename, 'FileA', 'FileB'), a.value
from <table> a
left join <table> b on a.filename = replace(b.filename, 'FileB', 'FileA')
where a.fileName like 'FileA'
and b.filename is null;
Правильный ответ
select a.filename, a.value
from testtable a
union
select replace(a.filename, 'FileA', 'FileB'), a.value
from testtable a
left join testtable b on replace(a.filename, 'FileA', 'FileB') = b.filename
where a.fileName like 'FileA%'
and b.filename is null;
Заполнить отсутствующими данными
insert into testtable (fileName, value)
select replace(a.filename, 'FileA', 'FileB'), a.value
from testtable a
left join testtable b on replace(a.filename, 'FileA', 'FileB') = b.filename
where a.fileName like 'FileA%'
and b.filename is null;