ABAP 7.55 新特性 (二) ABAP SQL部分
上一篇文章ABAP 7.55 新特性 (一)介绍了ABAP 7.55中除ABAP SQL外的更新内容,本篇是剩余的ABAP SQL更新部分。
1. 新聚合函数ALLOW_PRECISION_LOSS
ABAP SQL现在支持新的聚合函数ALLOW_PRECISION_LOSS,它可以和SUM结合使用,以降低准确性为代价,提升性能,
示例代码,
REPORT demo_allow_precision_loss. CLASS demo DEFINITION.
PUBLIC SECTION.
CLASS-METHODS main.
ENDCLASS. CLASS demo IMPLEMENTATION.
METHOD main. TYPES result_type TYPE p LENGTH 6 DECIMALS 2.
DATA: allow_precision_loss_result TYPE result_type,
normal_sum_result TYPE result_type. DELETE FROM demo_expressions.
INSERT demo_expressions FROM TABLE @(
VALUE #( ( id = 'X' dec2 = '2.119999' )
( id = 'Y' dec2 = '2.118888' )
( id = 'A' dec2 = '1.13999' )
( id = 'Z' dec2 = '2.668888' )
) ). SELECT SUM( CAST( dec2 AS DEC( 10,2 ) ) ) AS sum1
FROM demo_expressions INTO @normal_sum_result. SELECT allow_precision_loss( SUM( CAST( dec2 AS DEC( 10,2 ) ) ) )
AS sum1
FROM demo_expressions INTO @allow_precision_loss_result. cl_demo_output=>write_data( allow_precision_loss_result ).
cl_demo_output=>write_data( normal_sum_result ).
cl_demo_output=>display( ).
ENDMETHOD.
ENDCLASS. START-OF-SELECTION.
demo=>main( ).
2. 窗口函数中的可选窗口帧
可选窗口帧规范允许定义窗口内行的子集,该子集称为帧。 帧是根据当前行确定的,这使得它可以在窗口内移动。
3. 新窗口函数FIRST_VALUE和LAST_VALUE
ABAP SQL现在在窗口表达式中支持以下新窗口函数:
4. 新的日期/时间转换函数
现在,ABAP SQL支持以下新的日期/时间转换函数:
TSTMPL_TO_UTCL和TSTMPL_FROM_UTCLDATS_TO_DATN和DATS_FROM_DATNTIMS_TO_TIMN和TIMS_FROM_TIMN
5. 新的时间戳函数
现在,ABAP SQL支持以下新的时间戳函数:
UTCL_CURRENT,UTCL_ADD_SECONDS和UTCL_SECONDS_BETWEEN.
6. 新的日期函数
现在,ABAP SQL支持以下新的日期函数:
DATN_DAYS_BETWEEN,DATN_ADD_DAYS和DATN_ADD_MONTHS.
7. ORDER BY子句后新的附加项
现在,ABAP SQL支持以下新的日期函数ORDER BY子句后新的附加项:
NULLS FIRST和NULLS LAST.
8. 新的聚合函数
现在,ABAP SQL支持以下新的聚合函数:
MEDIAN,STDDEV,VAR,CORR和CORR_SPEARMAN.
9. 新的几何变换函数
现在,ABAP SQL支持以下新的几何变换函数:
as_geo_json
10. SQL条件修正
操作符IN现在可以用于返回值元组的子查询。
示例代码
DATA cityfrom TYPE spfli-cityfrom VALUE 'Frankfurt'.
DATA cityto TYPE spfli-cityto VALUE 'New York'.
cl_demo_input=>new(
)->add_field( CHANGING field = cityfrom
)->add_field( CHANGING field = cityto
)->request( ).
cityfrom = to_upper( cityfrom ).
cityto = to_upper( cityto ). SELECT *
FROM spfli
WHERE ( carrid, cityfrom, cityto )
IN ( ( 'LH', @cityfrom, @cityto ),
( 'UA', @cityfrom, @cityto ) )
INTO TABLE @DATA(itab). cl_demo_output=>display( itab ).
SQL函数和cast表达式目前可以用在比较运算符的右侧。
11. 新的窗口函数NTILE
ABAP SQL现在在窗口表达式中支持以下新窗口函数:
12. SELECT, INTO target修改
在使用SELECT, INTO target时,宿主变量可以内联声明,即便FROM子句是动态的,只要所有SELECT清单是静态的。以前,结果集的结构,包括SELECT列表、FROM子句和任何indicator都需要是静态的。
13. 新的类型转换函数to_clob和to_blob
ABAP SQL现在在窗口表达式中支持新的类型转换函数to_clob和to_blob。
14. 新的货币转换函数currency_conversion
ABAP SQL现在支持新的货币转换函数currency_conversion。
示例,
DATA currency TYPE c LENGTH 5 VALUE 'USD'. ... SELECT FROM demo_prices
FIELDS id,
currency_conversion(
amount = amount,
source_currency = currency,
target_currency = @currency,
exchange_rate_date = @sy-datlo,
round = 'X',
on_error =
@sql_currency_conversion=>c_on_error-fail )
AS amount,
@currency AS currency
INTO TABLE @DATA(converted_prices_asql).
15. 现在可以在SQL表达式中使用streaming和locators
现在可以在SQL表达式中使用streaming和locators,比如TO_CLOB, TO_BLOB和AS_GEO_JSON.
16. 基本SQL表达式支持更多类型
基本SQL表达式现在可以支持字典类型STRING和RAWSTRING.
17. Hierarchy载入选项
对于hierarchy生成器HIERARCHY,现在可以通过新的附加项LOAD BULK|INCREMENTAL|load_option指定载入策略。
18. 指定类型的字面量
现在可以在ABAP SQL中使用多种ABAP字典类型的指定类型的字面量。
语法:... dtype...
例如,
SELECT *
FROM demo_ddic_types
WHERE int8 = int8`32984723948723`
INTO TABLE @DATA(result).
19. 新的字符函数
ABAP SQL现在支持一些新的正则处理函数,比如REPLACE_REGEXPR, LIKE_REGEXPR和 OCCURRENCES_REGEXPR
20. 在UPDATE FROM中指定更新列
现在可以在UPDATE FROM子句中通过set indicators指定更新列。
21. 严格模式
如果用到了上面列出的ABAPSQL中的任一新特性,语法检查会以严格模式运行。
原始文档链接:https://help.sap.com/doc/abapdocu_755_index_htm/7.55/en-US/index.htm?file=abennews-755-abap_sql.htm
ABAP 7.55 新特性 (二) ABAP SQL部分的更多相关文章
- ABAP 7.55 新特性 (一)
最近几天,SAP S4 2020对应的ABAP 7.55的新版文档已经出现.本文翻译了ABAP SQL之外的更新部分.ABAP SQL的更新比较长,会再之后单独成篇. 译者水平有限,如有错误,请评论指 ...
- ABAP 7.50 新特性 – Open SQL中的宿主表达式和其它表达式
在长期的停滞后,Open SQL的发展终于从沉睡中醒来.从ABAP 7.40开始,SAP推进了某些关键的改变,以尽可能地包含SQL92中的特性,并提供与ABAP CDS中的DDL里面的SELECT一样 ...
- ABAP 7.50 新特性之另一个CORRESPONDING
在ABAP中,存在着一条法则:同样的名称代表的不一定是同样的东西(具体可看最近的相关讨论). 但是如你们所知的,存在着一个很好的例外: 所有涉及到使用CORRESPONDING为结构赋值的关键字的语法 ...
- Atitit.数据库新特性战略规划 mssql sql server 2008 SQL2012 SQL2014
Atitit.数据库新特性 mssql sql server 2008 SQL2012 SQL2014 1. Sql2012 新特性 1 1.1. 增加了Sequence对象. 1 1.2. 新的分页 ...
- HTML5 十大新特性(二)——表单新特性
H5的表单新特性可以分为两大类. 一.10个input的type值 1.email:邮件输入域,在表单提交时提供简单的邮箱格式验证,并弹出一个提示窗口. 2.url:地址输入域,在表单提交时提供简单的 ...
- JAVA 8 主要新特性 ----------------(二)JDK1.8优点概括
一.JDK1.8优点概括 1.速度更快 由于底层结构和JVM的改变,使得JDK1.8的速度提高. 2.代码更少(增加了新的语法 Lambda 表达式) 增加新特性Lambda表达式的 ...
- 深入理解java虚拟机---jdk8新特性(二)
1.jdk8新特性 1.新特性 2.lambda函数表达式的作用 A: 替换内部类 B:对集合的操作并行化
- 类的加载、时机、反射、模板设计、jdk7/jdk8新特性(二十六)
1.类的加载概述和加载时机 * A:类的加载概述 * 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化. * 加载 * 就是指将class文 ...
- JDK8新特性(二) 流式编程Stream
流式编程是1.8中的新特性,基于常用的四种函数式接口以及Lambda表达式对集合类数据进行类似流水线一般的操作 流式编程分为大概三个步骤:获取流 → 操作流 → 返回操作结果 流的获取方式 这里先了解 ...
- 010-jdk1.8版本新特性二-Optional类,Stream流
1.5.Optional类 1.定义 Optional 类是一个可以为null的容器对象.如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象. Optional 是个 ...
随机推荐
- APReLU:跨界应用,用于机器故障检测的自适应ReLU | IEEE TIE 2020
论文的工作属于深度学习在工业界的应用,借鉴计算机视觉的解决方法,针对机器故障检测的场景提出自适应的APReLU,对故障检测的准确率有很大的提升.论文整体思想应该也可以应用于计算机视觉,代码也开源了,大 ...
- Kingbase ES函数参数模式与Oracle的异同
文章概要: 本文对主要就KES和Oracle的PLSQL中关于存储过程参数模式异同进行介绍,列举和验证了存在的差异 (如果想直接看差异的结论可直接跳到末尾). 一,存储过程的三种参数模式 重新回顾一下 ...
- Scala 特质(Trait)
1 package chapter06 2 3 object Test13_Trait { 4 def main(args: Array[String]): Unit = { 5 val studen ...
- 【已解决】ajax和flask路由传json格式数据出现undefined和object错误
描述一下问题背景: 前台封装一个json字符串给后台传输数据,后台的ajax获取请求之后把接收的数据显示到前台html表格上. jsonify:这个方法可以把字典转化为json字符串 通过jsonif ...
- #点分治#洛谷 4149 [IOI2011]Race
题目 给一棵树,每条边有权.求一条简单路径,权值和等于 \(k\),且边的数量最小. 分析 点分治,记录一定权值的最小边数量, 每遍历一棵子树后统计答案 代码 #include <cstdio& ...
- [易语言软件开源] [分享源码] 易语言D2D实现彩虹跑马灯
注意使用了D2D1.1,部分win7用户可能用不了(win7以下也用不了) 不是单纯的一个彩虹条,是可以变幻的 其实也可以封装成GDI+的,但是GDI+占用比较大,就没有用 点击下载点击下载
- CMake vs Makefile 如何选择适合你的项目构建工具
CMake vs Makefile: 如何选择适合你的项目构建工具 在软件开发中,构建(build)是一个非常重要的过程.我们需要将源代码转换为可执行文件或库文件.为了完成此过程,我们通常使用构建工具 ...
- Go 语言中 For 循环:语法、使用方法和实例教程
for循环用于多次执行特定的代码块,每次都可以使用不同的值.每次循环执行都称为一次迭代.for循环可以包含最多三个语句: 语法 for 语句1; 语句2; 语句3 { // 每次迭代要执行的代码 } ...
- 探索生成式AI的未来:Chat与Agent的较量与融合
近年来,生成式人工智能(AI)不仅在技术界引起了广泛关注,更成为了推动多个行业革新的关键力量.这种技术之所以备受瞩目,不仅在于其独特的创造性和高效性,还在于它对未来商业模式和社会结构可能产生的深远影响 ...
- 2、androidStudio调用Unity方法
1.导入Unity的Classes.jar文件 (1).首先找到这个包在哪 Unity版本为5.0之前时,classes.jar的路径: unity的安装路径\Editor\Data\Playback ...