ABAP SELECT语法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ABAP SELECT语法相关的知识,希望对你有一定的参考价值。

请教下,如果两个表内连接T1、T2,我能否只取T1表的几个字段,T2表的全部?例如:
select t1~matnr t2~* from t1 inner join t2 on...这样的语法有问题,大家帮忙下,谢谢!

那你用两个 select么好了 ,内连接,并不是高效的。

t2~* 估计是不允许的。
你先 select *
from t2
into table t_tab.
第二个用 for all entries
参考技术A 内联就不要用星号了 把t2所有字段都列出来

第二篇SAP ABAP7.50新语法之OPEN SQL

公众号:matinal
本文作者:matinal

 

前言部分

当使用CDS实体的名称作为数据源访问SELECT中的CDS视图时,此视图在其SELECT列表中发布关联_assoc以供外部使用,则这些关联可用作路径表达式的根元素。同样的声明。在路径表达式中,关联名称_assoc1,_assoc2,...由反斜杠(\\)分隔。必须在路径表达式中直接前缀关联的目标数据源中发布根元素之后指定的关联。路径表达式不能跨多行源代码分割。

 

使用路径表达式编译SELECT语句时,这些表达式表示的连接将隐式添加到语句的FROM子句中。在路径表达式出现时隐式评估生成的附加数据源。这符合连接条件和CDS视图的其他条件。关注公众号:SAP Technical。

 

CDS实体

可以使用路径表达式:

在SELECT语句中指定的列中。路径表达式表示左外连接(LEFT OUTER JOIN)。

作为SELECT语句中FROM子句的数据源。路径表达式表示内部联接(INNER JOIN)。

某些限制适用于Open SQL中的路径表达式关联。

@AbapCatalog.sqlViewName: \'SAP_Technical\'

@AccessControl.authorizationCheck: #NOT_REQUIRED

define view sap_technical

(_spfli_scarr, id, carrier, flight, departure, destination )

as select from spfli

association [1..1] to scarr as _spfli_scarr

on $projection.carrid = _spfli_scarr.carrid

{ _spfli_scarr,

key spfli.carrid,

key _spfli_scarr.carrname,

key spfli.connid,

spfli.cityfrom,

spfli.cityto }

 

程序调用

程序DEMO_CDS_ASSOCIATION使用以下SELECT语句和视图的简单路径\\ __spfli_scarr,并将其与对以相同方式工作的数据的访问进行比较。

SELECT id,

\\_spfli_scarr-carrname AS carrier,

flight,

departure,

destination

FROM sap_technical

INTO TABLE @DATA(result).

访问视图的完整SELECT列表的SELECT语句和访问具有相同类型的连接的视图的SELECT语句产生相同的结果。

以上是关于ABAP SELECT语法的主要内容,如果未能解决你的问题,请参考以下文章

第二篇SAP ABAP7.50新语法之OPEN SQL

工作笔记之 SELECT IN ABAP

工作笔记之 SELECT 语句在 SAP ABAP 中的用法总结(下)

工作笔记之 SELECT 语句在 SAP ABAP 中的用法总结(上)

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

ABAP Development Tools的语法高亮实现原理