如何使用主要/二级语言代码创建查询



请告诉我如何做:有一个桌子。我有法语中的maktx(spras ='fr'),但是如果法语不在这里,则需要用英语显示maktx。如何正确执行?

 IF MAKT-SPRAS='FR'.
    SELECT SINGLE MAKT-MAKTX FROM MAKT WHERE SPRAS='FR'.
 ELSE.
    SELECT SINGLE MAKT-MAKTX FROM MAKT WHERE SPRAS='EN'.
 ENDIF.

您可以按顺序获得。

select * from MAKT where SPRAS = 'FR' or SPRAS = 'EN' order by SPRAS descending.
  exit.
endselect.

我个人不建议在这种情况下使用SELECT...EXIT ENDSELECT.使用CC_1!

这是一种更简洁的方式,可以完全控制您想对数据库做什么:

DATA: ls_makt TYPE makt.
SELECT SINGLE * FROM makt
  INTO ls_makt
  WHERE matnr EQ <your-matnr>
    AND ( spras EQ 'FR' 
          OR ( spras EQ 'EN'
               AND NOT EXISTS ( SELECT * FROM makt
                                WHERE matnr EQ <your-matnr>
                                AND   spras EQ 'FR' ) ) ).

这将以法语或英语选择您的材料文本,但是如果不存在法语文本。

根据第一个评论进行编辑。您是对的,...单曲...在选择语句中缺少。

您可以创建一个动态,其中abap中的子句。

 DATA wherecond TYPE String.
 IF MAKT-SPRAS='FR'.
    CONCATENATE 'SPRAS = ''' FR '''' INTO wherecond.
 ELSE.
     CONCATENATE 'SPRAS = ''' EN '''' INTO wherecond.
 ENDIF.
 SELECT SINGLE MAKT-MAKTX FROM MAKT WHERE (wherecond).

相关内容

  • 没有找到相关文章

最新更新