SAP ABAP程序设计基础教程第7章ABAP数据库操作.pptVIP

  • 25
  • 0
  • 约6.34千字
  • 约 27页
  • 2017-08-23 发布于河南
  • 举报

SAP ABAP程序设计基础教程第7章ABAP数据库操作.ppt

第7章ABAP数据库操作 SAP Open SQL基础 ABAP数据库查询程序的结构与查询机制 Open SQL中的主要类型 从数据库表中读取数据 SELECT语句的用法 SELECT result FROM source [INTO target] [WHERE condition] [GROUP BY fields] [HAVING cond] [ORDER BY sort_order]. OpenSQL SELECT语句的典型结构 读取单行记录 SELECT SINGLE field list FROM table INTO targetWHERE condition 读取多条记录 SELECT [DISTINCT] field list FROM table INTO wa_object WHERE condition 对结构体wa_object的处理语句 ENDSELECT. SELECT field list FROM table INTO | APPENDING [CORRESPONDING FIELDS OF] TABLE itab WHERE condition . 总计表达式 使用总计表达式,可从数据库表的列f 中取得统计数据,有 效的总计表达式有: (1) MAX: 返回列f的最大值 (2) MIN: 返回列f的最小值 (3) SUM: 返回列f的总计 (3) AVG: 返回列f的平均值 (4) COUNT:给值或行计数:其中COUNT( DISTINCT f ) 返回列f 的不同值的个数;COUNT( * ) 返回选定行的总数。 各表达式的括号和参数之间必须包含空格,算术操作符AVG 和 SUM 只能对数字型字段进行操作。 在SELECT语句中指定要访问的CLIENTS 使用逻辑联接操作符进行条件组合 可以使用逻辑链接操作符AND、OR 和 NOT 按照任意顺序来组合六个基本 WHERE条件。如果希望指定几个必须同时满足的条件,可按照下列方法用AND进 行组合: ....WHERE condition1 AND condition2 AND condition3 AND... 如果需要指定几个条件 ,至少要满足其中的一个条件,就可按照下列方法用OR 进 行组合: ....WHERE condition1 OR condition2 OR condition3 OR... 如果只希望选择那些不符合指定条件的数据库记录 ,就可用NOT将其后面的条件 取反, 如下所示: ....WHERE NOT condition NOT 的优先级比AND高,AND的优先级比OR高。但我们可以使用括号来定义所 处理的WHERE条件的优先级顺序,且这些括号都必须加空格。 .......WHERE ( cityfrom = NEW YORK OR cityfrom = BEIJING ) AND NOT ( countryto = FRANCE OR countryto = JAPAN ). 运行时指定行选择的条件 我们也可以在运行期在SELECT OPEN SQL语句的WHERE子句中,指定完整的条件或部分条件。由于系统只有在运行时才能执行SQL条件的语法检查以及生成内部控制块,因此运行时指定条件比在编程期间在程序中指定条件在程序的运行上需要花费更多的CPU 时间。并且,动态指定WHERE 条件只能用于SELECT 语句。在运行时指定完整的条件的语法为: SELECT......WHERE (itab) ....... 给行分组 要将数据库表中的行按指定字段进行分组,应该按照如下格式 使用SELECT 语句的GROUP BY 子句,语法是: SELECT [DISTINCT] c1 c2 c3.. FROM clause INTO clause GROUP BY c1 c2 .... 指定分组条件 使用HAVING 子句给分组选择的结果限定条件,因此HAVING 子句只能用于GROUP BY子句后面。HAVING 子句后面的条件 基本上等同于 WHERE 搜索条件,只是 WHERE 搜索条件不能 包括集合函数,而 HAVING 的条件可以包括集合函数,其语法 如下: SELECT c1 c2 SUM(c3) AVG(c4) ….. FROM clause INTO clause GROUP BY c1 c2 .... HAVING condi.

文档评论(0)

1亿VIP精品文档

相关文档