上一篇文章ABAP 7.55 新特性 (一)介紹了ABAP 7.55中除ABAP SQL外的更新內容,本篇是剩余的ABAP SQL更新部分,
本文鏈接:https://www.cnblogs.com/hhelibeb/p/13833653.html 轉載請注明 ABAP 7.5 學習群的notion頁面鏈接:https://www.notion.so/hhelibeb/ABAP-7-55-ABAP-SQL-7365b5b0540e4b999c8fd405273c63d2
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現在在視窗運算式中支持以下新視窗函式:
FIRST_VALUE和LAST_VALUE,
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現在在視窗運算式中支持以下新視窗函式:
NTILE
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/179040.html
標籤:其他
