abap - 变量中的星号不像 SQL 中的 % 那样被视为

标签 abap opensql

我创建了这三个单选按钮来定义变量TEST的值。

前两个工作得很好:如果我点击p_r1,它会分配B,如果我点击p_r2,它会分配A .

我希望第三个分配 * 来获取所有状态,即 A、B、C。

为什么不起作用? * 不是一个特殊字符吗,与 SQL 中的 % 一样吗?

DATA: TEST TYPE C.

PARAMETERS:
  P_R1 RADIOBUTTON GROUP GRP1 DEFAULT 'X',
  P_R2 RADIOBUTTON GROUP GRP1,
  P_R3 RADIOBUTTON GROUP GRP1.

IF P_R1 = 'X'.
  TEST = 'B'.

ELSEIF P_R2 = 'X'.
  TEST = 'A'.

ELSEIF P_R3 = 'X'.
  TEST = '*'.

ENDIF.

SELECT  VBELN,GBSTK
  FROM LIKP
  WHERE GBSTK = @TEST
  INTO TABLE @DATA(IT_FINAL).


CL_DEMO_OUTPUT=>DISPLAY( IT_FINAL ).

最佳答案

为了满足您的要求,需要记住以下几点:

  1. where 条件中的 = 或 EQ 不允许使用通配符。 IE。当示例中的 test 等于“*”时,它只会在数据库表中查找 GBSTK 等于“*”的条目,很可能为零条目
  2. 要使用通配符,您需要使用 LIKE 而不是 = 或 EQ
  3. 用于处理任何字符串的通用通配符是“%”而不是“*”

有关更多详细信息,请查看适用于您的特定版本的 SELECT - WHERE 的 SAP 帮助。这是 752 的号码:https://help.sap.com/doc/abapdocu_752_index_htm/7.52/en-US/abapwhere.htm?file=abapwhere.htm

关于abap - 变量中的星号不像 SQL 中的 % 那样被视为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73421360/

相关文章:

java - BAPI_TRANSACTION_COMMIT 是否提交自上次提交以来的更改

abap - JOIN 查询中所选列的条件字段

abap - OpenSQL 中 GROUP BY 子句中的通配符?

abap - 具有多个值的字段的sql select语句

sql - 4个表的JOIN,如何将SELECT列限制为一张表?

loops - 第一列的数据丢失

abap - 为什么 `cl_gui_textedit->get_textstream`的结果为空?

abap - CX_SY_CONVERSION_NO_NUMBER 在我输入时划分?

data-structures - 如何使用 ABAP OO 构建通用树数据结构

xml - 通过 DISPLAY_XML_DOCUMENT 显示 IF_IXML_ELEMENT 对象