ABAP--新语法--Open SQL--第五天-- OFFSET / Strict Mode

OFFSET

从ABAP 7.51开始,Open SQL中引入了关键字OFFSET,可以指定查询结果的开始位置

 指定OFFSET时,结果集必须使用ORDER BY进行排序,与UP TO一起使用可以实现分页查询;
可以用union合并多个查询结果,各个查询结果列的数目、名称、顺序、类型一样,union不能与up to n rows一起使用;

DATA: lv_int TYPE i VALUE 1.
cl_demo_input=>request( CHANGING field = lv_int ).

SELECT carrid, connid, fldate
  FROM sflight
 ORDER BY carrid, connid, fldate
  INTO TABLE @DATA(lt_data)
 UP TO 10 ROWS
OFFSET @( ( lv_int - 1 ) * 10 ).

ABAP--新语法--Open SQL--第五天-- OFFSET / Strict Mode_第1张图片 ABAP--新语法--Open SQL--第五天-- OFFSET / Strict Mode_第2张图片

SELECT char10, int4
    FROM demo_ddic_types
    WHERE char10 = char`hallowelt`
  union all
  SELECT  char10, int8 as int4
    FROM demo_ddic_types
  union distinct
  SELECT  char10, int8 as int4
    FROM demo_ddic_types
  INTO TABLE @DATA(lt_data7)
* up to 8 rows
  .

Strict Mode

使用了部分新语法后,系统会以严格模式进行语法检查

 每个版本有不同的 Strict Mode,但都会包含旧版本的内容,在语法检查时一般都会有提示性的错误信息,我们只需要按提示做修改即可;
但是有些错误信息可能看不出来是哪些语句的问题,这个时候我们就要自己去检查一下新语法的使用规则
 部分检查示例:
SLECT LIST 中的字段需要用 ,分隔
本地对象需要使用转义符@
INTO 语句需要放在 SELECT 语句中的最后一部分;不是在select子句末尾,而是整个查询的末尾,但在up to和offset之前;

你可能感兴趣的:(ABAP新语法,SAP,ABAP)