简体   繁体   English

和 + 或在一个选择语句中

[英]And + Or in one Select-Statement

In my select statement I chain different conditions with AND.在我的 select 语句中,我用 AND 链接了不同的条件。 Now I need for one condition an OR.现在我需要一个 OR 条件。 How can I add this for just this one Attribute without affecting the other AND-statements before?如何在不影响之前的其他 AND 语句的情况下为这一个属性添加它? That's my coding:这是我的编码:

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'.

For the last condition abrec EQ '2' I need an OR as well, like abrec EQ '2' OR '3' .对于最后一个条件abrec EQ '2'我也需要一个 OR,例如abrec EQ '2' OR '3' How can I add this the best way without affecting the other ANDs?如何在不影响其他 AND 的情况下以最佳方式添加它?

Thanks for your hints!谢谢你的提示!

Use parentheses:使用括号:

EDIT: Seems like you need to add spaces after and before the brackets See this related 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' )

Use IN clause instead:改用IN 子句

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').

The other valid alternative is:另一个有效的选择是:

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' ).

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM