首页 > 解决方案 > VBELN 查询时 SELECT 不返回行

问题描述

我正在尝试从内部表中显示 alv 中的表,其中从存储在数据库中的表中添加行。如果没有 where 条件,我会看到在 alv 中显示的行,但在 select 语句中有 where 条件时,不会返回任何行。

这是代码:

REPORT  ZSAM.

DATA: IT_1 TYPE STANDARD TABLE OF VBAK.

select vbeln audat netwr waerk vkorg vtweg 
    from VBAK 
    into corresponding fields of Table IT_1 
    where vbeln > 4500 
      and vbeln < 6000.

知道为什么使用 where 条件使其不返回任何行以及如何修复?

标签: abapopensql

解决方案


vbeln 是一个有十个位置的字段并使用ALPHA转换例程(请参阅数据元素后面的域)。这意味着该值用前导零填充(只要它只包含数字)。由于这是一个字符类型字段,因此您还必须使用撇号进行比较。所以,WHERE条件必须是这样的:

WHERE vbeln GT '0000004500'
  AND vbeln LT '0000006000'

推荐阅读