SAP ABAP——OPEN SQL(四)【FROM】

简介: 本文主要介绍SAP ABAP中OPEN SQL的FROM语句

本文主要介绍SAP ABAP中OPEN SQL的FROM语句


FROM语句选项

语句 说明
CLIENT SPECIFIED 解除自动client设置
BYPASSING BUFFER 不会从SAP本地缓冲器中读取数据
UP TO n ROWS 限制查询的个数


选择表

- 选择静态表

SELECT ... FROM <dtba> [AS <alias>] WHERE <condition>

- 选择动态表(在页面动态地输入数据库表sflight查询到相关的数据)

案例演示代码:

DATA:GS_SFLIGHT TYPE SFLIGHT.
PARAMETERS P_SF TYPE CHAR20.
SELECT * FROM (P_SF) INTO GS_SFLIGHT UP TO 1 ROWS.
 WRITE:GS_SFLIGHT-CARRID, GS_SFLIGHT-CONNID.
ENDSELECT.

00062e86a3e72953e11ecbb061cfa2c.png

1c175334b46d9594efd6711568e3891.png



JOIN

JOIN语句是ABAP OPEN SQL中用来在查询多个表中数据时使用的一种语法,能够将多个数据库表进行连接查询(其中JOIN语句还细化分为了INNER JOIN 和 OUTER JOIN 其中若不指定OUTER JOIN 则JOIN默认为INNER JOIN),其中JOIN语句的基本语法如下:

SELECT...FROM <dbta1> [AS <alias>] [INNER][LEFT OUTER] JOIN <dbta2> [AS <alias>] ON <condition> [WHERE <condition>] [UP TO n ROWS]

- INNER JOIN

INNER JOIN为内连接,用于查询两个表中相同的数据,其中案例代码及效果如下:

DATA:BEGIN OF GS_SFLIGHT,
  ZCARRID LIKE SFLIGHT-CARRID,
  ZCARRNAME LIKE SCARR-CARRNAME,
 END OF GS_SFLIGHT.
  SELECT a~CARRID b~CARRNAME INTO GS_SFLIGHT FROM SFLIGHT AS a INNER JOIN SCARR AS b ON a~CARRID = 
   b~CARRID UP TO 1 ROWS
   WHERE a~CARRID = 'AC' .
   WRITE:/ GS_SFLIGHT-ZCARRID,GS_SFLIGHT-ZCARRNAME.
  ENDSELECT.

可以看到结果显示返回了两个表中相同的数据!并且UP TO 1 ROWS限制了返回的结果行数!

c7a7a0fc092ff24e320259086ff1cf1.png

1d571aff1cd249722b3f2c7d06811d0.png

6043e1324b4efb40195f8857c71a97d.png

- LEFT OUTER JOIN

LEFT OUTER JOIN为左外连接(ABAP OPEN SQL中目前只支持左外连接),此语句以左边基本表作为基准表读取数据(能够返回左边表拥有但右边表没有的数据)其中案例代码及效果如下:

DATA:BEGIN OF GS_SFLIGHT,
   ZCARRID LIKE SFLIGHT-CARRID,
   ZCURRCODE LIKE SCARR-CURRCODE,
   END OF GS_SFLIGHT.
   SELECT a~CARRID b~CURRCODE INTO GS_SFLIGHT FROM SFLIGHT AS a LEFT OUTER JOIN SCARR AS b ON 
   a~CARRID = b~CARRID .
   WRITE:/ GS_SFLIGHT-ZCARRID,GS_SFLIGHT-ZCURRCODE.
   ENDSELECT.

可以看到结果显示返回了左边表中拥有但是右边表中不具有的数据(SFLIGHT中具有CARRID为SQ的数据,但是SCARR中不具有CARRID为SQ的数据)!

f37374604064bb1ba96c1dfc760f26d.png

目录
相关文章
|
6月前
|
存储 安全 数据库
什么是 SAP ABAP 数据库表的 Display Maintenance Allowed with Restrictions
什么是 SAP ABAP 数据库表的 Display Maintenance Allowed with Restrictions
|
6月前
|
安全 API 数据库
SAP ABAP OData 中 Function import 的概念介绍
SAP ABAP OData 中 Function import 的概念介绍
|
6月前
|
SQL 负载均衡 监控
SAP ABAP DBSQL_SQL_ERROR 错误
SAP ABAP DBSQL_SQL_ERROR 错误
|
6月前
|
前端开发 数据库 开发者
如何在 SEGW 事务码里为 SAP ABAP OData 服务实现 Function Import 试读版
如何在 SEGW 事务码里为 SAP ABAP OData 服务实现 Function Import 试读版
SAP ABAP OData 服务里需要指定 guid 类型的请求参数时,正确语法是什么?
SAP ABAP OData 服务里需要指定 guid 类型的请求参数时,正确语法是什么?
|
6月前
|
SQL 应用服务中间件 数据库
关于 ABAP OPEN SQL SELECT 语句的一些额外说明
关于 ABAP OPEN SQL SELECT 语句的一些额外说明
|
6月前
|
SQL 监控 Oracle
SAP ABAP 系统错误 Return value of the database layer SQL dbsl rc 99
SAP ABAP 系统错误 Return value of the database layer SQL dbsl rc 99
|
6月前
|
存储 前端开发 Linux
在 SAP ABAP 系统里访问 FTP 服务器
在 SAP ABAP 系统里访问 FTP 服务器
|
6月前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
|
6月前
|
JavaScript 前端开发 开发者
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍