公众号:SAP Technical
本文作者:matinal
 

前言部分

大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。

正文部分

从7.40开始,SP08可以使用在INTO之后用7.40,SP02引入的声明运算符DATA(...)来放置内联声明。

下面举例说明比较清晰:


DATA id TYPE scarr-carrid.
cl_demo_input=>request( CHANGING field = id ). SELECT SINGLE carrname AS name, carrid AS id
FROM scarr
WHERE carrid = @id
INTO @DATA(result). cl_demo_output=>display( result ). ​

看到语法不同了吗,如果没看到,请回到你现有的系统中对比

上面语法是INTO DATA里面的写法,下面说一下INTO TABLE里的写法

举例说明:


SELECT carrname AS name, carrid AS id
FROM scarr
INTO TABLE @DATA(result). cl_demo_output=>display( result ). ​

看到语法不同了吗

根据SELECT列表中定义的结果集,声明基本数据对象,结构或内部表。 有关类型构造的详细信息,请参阅官方文档。

将7.40,SP05引入SELECT列表中的SQL表达式使用7.40,SP08进行了增强,如下所示:

1、可以在GROUP BY之后使用SQL表达式

2、可以与聚合一起使用SQL表达式

3、可以使用SQL表达式作为聚合的参数

4、可以使用除简单CASE之外的已搜索CASE表达式

对上述的描述,下面举例说明更清楚一点


SELECT num1, num2, CASE WHEN col1 < AND col2 < THEN @both_l WHEN col1 >= AND col2 >= THEN @both_gt ELSE @others END AS group FROM demo_expressions ORDER BY group INTO TABLE @DATA(results). ​

在SELECT列表中,可以使用语法data_source〜*从7.40,SP08开始指定数据源的所有列。 这在使用连接时很方便。

举例说明:


SELECT scarr~carrname, spfli~*, scarr~url FROM scarr INNER JOIN spfli ON scarr~carrid = spfli~carrid INTO TABLE @DATA(result). ​

1、从7.40,SP08开始,INTO子句可以和应该(haha)在SELECT语句的其他子句之后使用。 那些不被视为子句的添加UP TO n ROWS,BYPASSING BUFFER和CONNECTION必须放在INTO子句之后。

2、此更改背后的原理是,INTO子句不是标准SQL的一部分,而是定义SQL和ABAP之间的数据接口。 为了实现Open SQL的SQL部分中的未来增强, UNION,必须从SQL部分中删除INTO子句。

一些限制已删除。 例如。 从7.40开始,SP08可以在SELECT列表中的算术表达式的运算符前面放一个减号,可以对聚合执行一个简单的CASE,在ON之后可以在连接条件中使用LIKE和IN(...) 您可以动态地在WHERE之后指定子查询。

但是,如果您使用此处列出的任何新功能(如SP05已有的),则将以严格模式执行Open SQL的语法检查,其中应用更严格的语法规则。 例如。 您必须在主机变量前使用逗号分隔的列表和转义符号@。 通过这种方式,至少在Open SQL ABAP中以向下兼容的方式实施一个依赖于发布的deprecation概念。

【ABAP系列】SAP ABAP7.40新语法简介第二篇的更多相关文章

  1. 【ABAP系列】SAP ABAP7.40新语法简介第一篇

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP7.40新语法简 ...

  2. 【第八篇】SAP ABAP7.5x新语法之F4增强【续】

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:SAP ABAP7.5x系列之F4增强[续]   ...

  3. 【第七篇】SAP ABAP7.5x新语法之F4增强

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:SAP ABAP7.5x系列之F4增强 前言部分 ...

  4. 【第五篇】SAP ABAP7.5x新语法之命名规约

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:SAP ABAP7.5x系列之命名规约   命名 ...

  5. 【第一篇】SAP ABAP7.5x新语法之预定义数据结构

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:SAP ABAP7.5x系列之预定义数据结构 前 ...

  6. 【第六篇】SAP ABAP7.5x新语法之SQL注入

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:SAP ABAP7.5x系列之SQL注入   前 ...

  7. 【第四篇】SAP ABAP7.5x新语法之CREATE DATA&INTERFACE

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文地址:SAP ABAP7.5x系列之CREATE DA ...

  8. 【第三篇】SAP ABAP7.5x新语法之程序结构&SubScreen

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文地址:SAP ABAP7.5x系列之程序结构& ...

  9. 【第二篇】SAP ABAP7.5x新语法之OPEN SQL

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:SAP ABAP7.5x系列之OPEN SQL ...

随机推荐

  1. javasctipt之DOM知识点

    一:DOM节点 子节点:childNodes 父节点:parentNode offsetPrent 二:元素属性操作 方式一:xxx.style.xxx 方式二:xxx.style["xxx ...

  2. Acwing-275-传纸条(DP)

    链接: https://www.acwing.com/problem/content/description/277/ 题意: 给定一个 N*M 的矩阵A,每个格子中有一个整数. 现在需要找到两条从左 ...

  3. django之路由层(反向解析)总结

    表关系的建立方式 表与表之间的关系就三种 一对一 OneToOne(to='') # to后面可以跟字符串的表名 也可以直接跟变量名表名(该表名必须在上面提前定义出来) 一对多 ForeignKey( ...

  4. Anaconda 安装+使用+换源+更新

    anaconda官网下载安装:https://www.continuum.io/downloads/ anaconda用法:查看已经安装的包:pip list 或者 conda list 安装和更新: ...

  5. CSS3的多列属性

    CSS3 可以将文本内容设计成像报纸一样的多列布局 ㈠CSS3 多列属性 ㈡column-count 属性 ⑴语法:column-count: number|auto; ⑵值:          ㈢c ...

  6. Codeforces #499 E Border ( 裴蜀定理 )

    题目链接 题意 : 给出 N 种纸币.并且给出面值.每种纸币的数量可以任选.问你得出来的数在 k 进制下.末尾位的数有多少种可能.输出具体方案 分析 : 纸币任意选择组成的和 可以用一个一次多项式来表 ...

  7. (Java多线程系列三)线程间通讯

    Java多线程间通讯 多线程之间通讯,其实就是多个线程在操作同一个资源,但是操作的动作不同. 1.使用wait()和notify()方法在线程中通讯 需求:第一个线程写入(input)用户,另一个线程 ...

  8. Mysql启动报错 The server quit without updating PID

    [root@db mysql]# service mysql restartMySQL server PID file could not be found![失败]Starting MySQL... ...

  9. MySQL格式化小数点为百分号并保留2为小数

    #colname为字段名字,CONCAT的作用是把小数点转成百分号,TRUNCATE的作用是保留百分号的小数点成几位 SELECT CONCAT(TRUNCATE(colname*100,2),'%' ...

  10. 四叉树的js实现

    基于 https://gamedevelopment.tutsplus.com/tutorials/quick-tip-use-quadtrees-to-detect-likely-collision ...