abap - 如果找不到行,则使用第二个条件

标签 abap hana opensql

我有以下选择:

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/

相关文章:

操作后刷新表控件

parameters - 替换屏幕上显示的参数名称?

char - 用模式覆盖 char 字符串

abap - 从 ABAP CDS View 调用类方法?

java - 如何修复错误

ide - ABAP IDE 中双击的键盘快捷键

sql - SAP HANA 从选择中创建表/插入新表

abap - 从 CDS 实体中选择还是从 CDS 数据库 View 中选择

mdx - MDX(分析服务)仍然相关吗

dynamic - 从(lv_表名)中选择错误: the output table is too small