之前看到很多博客上都对这个语句的使用事项已经很多了,现在不在重复。
今天在编程的时候发现一个问题:
如下: SELECT b_werk "地点
b_lager "库存地点
INTO CORRESPONDING FIELDS OF TABLE ty_output_h
FROM zwmt029
WHERE sernr IN s_sernr.
与(当内表it_matnr为空的时候)
SELECT b_werk "地点
b_lager "库存地点
INTO CORRESPONDING FIELDS OF TABLE ty_output_h
FROM zwmt029
FOR ALL ENTRIES IN it_matnr
WHERE sernr IN s_sernr
AND matnr = it_matnr-matnr.
取值效果一样么?
事实证明是不一样的。当执行下面的语句的时候,会把表中所有的语句查询出来。
由此可以得出结论:当使用FOR ALL ENTRIES 时,如果连接的内表为空,会忽略掉下面的WHERE语句,直接把数据库中的数据全部取出,
在此,请博友注意: