我创建了这三个单选按钮来定义变量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 ).
最佳答案
为了满足您的要求,需要记住以下几点:
- where 条件中的 = 或 EQ 不允许使用通配符。 IE。当示例中的 test 等于“*”时,它只会在数据库表中查找 GBSTK 等于“*”的条目,很可能为零条目
- 要使用通配符,您需要使用 LIKE 而不是 = 或 EQ
- 用于处理任何字符串的通用通配符是“%”而不是“*”
有关更多详细信息,请查看适用于您的特定版本的 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/