Мне нравится объединение для такого рода вещей (оно заполнит вашу цель первым ненулевым значением). Вы можете использовать sy-loo в качестве языка по умолчанию и большее количество языков в порядке приоритета:
SELECT SINGLE coalesce( default~eqktx, greek~eqktx, english~eqktx )
FROM equi AS e LEFT OUTER JOIN eqkt AS default
ON default~equnr = e~equnr
AND default~spras = @sy-langu
LEFT OUTER JOIN eqkt AS greek
ON greek~equnr = e~equnr
AND greek~spras = 'G'
LEFT OUTER JOIN eqkt AS english
ON english~equnr = e~equnr
AND english~spras = 'E'
WHERE e~equnr = @ls_equi-equnr
INTO @DATA(lv_eqktx).
Ваш пример станет:
SELECT coalesce( default~name, english~name ),
coalesce( default~text, english~text ),
coalesce( default~lang, english~lang )
FROM texts AS default LEFT OUTER JOIN texts AS english
ON english~name = default~name
AND english~lang = 'E'
WHERE default~name IN @r_names
AND default~lang = @lv_lang
INTO TABLE @DATA(lt_texts).