点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我正在努力寻找一种更简单的方法来查找如何在ABAP中实现这种查询
选择*
来自下属雇员
其中employeeid = ISNULL(p_employeeid,employeeid)
和cityid = ISNULL(p_cityid,cityid)
p_employeeid和p_cityid都是用户输入的参数。
如果用户未向p_employeeid输入值,则该查询将返回所有员工记录,无论其ID是什么
如果用户未输入p_cityid的值,则该查询将返回所有员工记录,而不管城市是什么
我知道我可以编写用于处理每个条件的单个查询,但是,是否有更简单的方法来进行此操作?
我希望在此输入任何信息
您可以在where子句中使用范围。 如果范围填充了您的输入,它将返回与您的输入相对应的数据,如果为空,则将仅带走数据库中的所有数据。
Arvin Ramos ,请继续回答您的公开问题。
RANGE数据类型非常适合您的情况,就像已经提到的Teshan一样。
如果WHERE子句中的SELECT语句中使用了RANGE数据类型 ,有一些规则需要注意:其中之一是,如果范围表为空,则不评估此特定的where-restriction。
有几种方法可以声明RANGE数据类型。
示例1:
这向您展示了如何将其作为选择屏幕参数进行操作。 如果只允许单个值,则可以添加选项"无扩展无间隔":
示例2:
如果您有较新的SAP ABAP堆栈,并且不想更改选择屏幕上的任何内容,那么以下内容将为您工作:/p>
示例3:
对于较早的版本,您将不得不使用以下版本:
让我知道这是否对您有用,或者您是否需要进一步的帮助。
一周热门 更多>