我有以下选择:
SELECT name, text, lang FROM texts
WHERE name IN @r_names
AND lang IN ( @lv_lang, 'E' )
INTO TABLE @DATA(lt_texts).
它将为给定名称选择多行文本。
我怎么说我想要带有 lang = lv_lang
的文本,但如果它们不存在,则选择带有 lang = 'E'
的所有文本向数据库请求,应用端不处理?
最佳答案
您可以使用 UNION
运算符来完成此任务:
SELECT name, text, lang FROM texts
WHERE name IN @r_names
AND lang = @lv_lang
UNION
SELECT name, text, lang FROM texts
WHERE name IN @r_names
AND lang = 'E'
AND NOT EXISTS ( SELECT name
FROM texts
WHERE name IN @r_names
AND lang = @lv_lang
)
INTO TABLE @DATA(lt_texts).
关于abap - 如果找不到行,则使用第二个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58171981/