
请问在ABAP中的这样一段程式中 WHERE stlbez IN s_stlbez AND werks = p_werks.
展开全部
IN是一个Where条件的操作符,它后面跟着的是一个RANGE类型的内表,这种内表是通过RANGES或者SELECT-OPTIONS来定义的。
内表中包含四个字段:SIGN,OPTION,LOW以及HIGH。其中SIGN的值范围为:I-包含,E-排除;OPTION的值范围为:EQ-等于,BT-介于,GT-大于,LT-小于,GE-大于或等于,LE-小于或等于,NE-不等于;LOW-表示低值,HIGH-表示高值,一般在OPTION为BT时HIGH才会有值。
用IN的时候,内表里面有多条,多条之间是用OR连接的,而用=的时候,只能用单值去做条件。
举个例子,如果S_STLBEZ里面的值为I EQ A和I BT B D;P_WERKS的值为1000那么转换出来的SQL则为:
WHERE ( STLBEZ EQ 'A' OR STLBEZ BETWEEN 'B' AND 'D' ) AND WERKS = '1000'
不知道这样描述你能明白不?
内表中包含四个字段:SIGN,OPTION,LOW以及HIGH。其中SIGN的值范围为:I-包含,E-排除;OPTION的值范围为:EQ-等于,BT-介于,GT-大于,LT-小于,GE-大于或等于,LE-小于或等于,NE-不等于;LOW-表示低值,HIGH-表示高值,一般在OPTION为BT时HIGH才会有值。
用IN的时候,内表里面有多条,多条之间是用OR连接的,而用=的时候,只能用单值去做条件。
举个例子,如果S_STLBEZ里面的值为I EQ A和I BT B D;P_WERKS的值为1000那么转换出来的SQL则为:
WHERE ( STLBEZ EQ 'A' OR STLBEZ BETWEEN 'B' AND 'D' ) AND WERKS = '1000'
不知道这样描述你能明白不?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询