+或在一个Select-Statement

时间:2016-12-27 13:14:54

标签: database select sap abap

在我的select语句中,我用AND链接不同的条件。现在我需要一个OR条件。 如何在不影响其他AND语句的情况下为这一个属性添加此项? 这是我的编码:

SELECT pernr reinr pdatv pdatb pdvrs abrec FROM PTRV_PERIO INTO CORRESPONDING FIELDS OF TABLE lt_ptrv_perio WHERE pdatv GE pa_begda AND pdatb LE pa_endda AND abrec EQ '2'.

对于最后一个条件abrec EQ '2'我也需要一个OR,例如abrec EQ '2' OR '3'。 如何在不影响其他AND的情况下以最佳方式添加此项?

感谢您的提示!

2 个答案:

答案 0 :(得分:3)

使用括号:

编辑:好像你需要在括号之前和之前添加空格 请参阅此相关question

SELECT pernr reinr pdatv pdatb pdvrs abrec FROM PTRV_PERIO
INTO CORRESPONDING FIELDS OF TABLE lt_ptrv_perio
WHERE pdatv GE pa_begda
AND   pdatb LE pa_endda
AND   ( abrec EQ '2' OR abrec EQ '3' )

答案 1 :(得分:3)

改为使用IN clause

SELECT pernr reinr pdatv pdatb pdvrs abrec FROM PTRV_PERIO
INTO CORRESPONDING FIELDS OF TABLE lt_ptrv_perio
WHERE pdatv GE pa_begda
AND   pdatb LE pa_endda
AND   abrec IN ('2', '3').

另一个有效的选择是:

SELECT pernr reinr pdatv pdatb pdvrs abrec FROM PTRV_PERIO
INTO CORRESPONDING FIELDS OF TABLE lt_ptrv_perio
WHERE pdatv GE pa_begda
AND   pdatb LE pa_endda
AND   ( abrec EQ '2' OR abrec EQ '3' ).