前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SAP ABAP——OPEN SQL(三)【SELECT】

SAP ABAP——OPEN SQL(三)【SELECT】

作者头像
THUNDER王
发布2023-02-23 12:57:38
2690
发布2023-02-23 12:57:38
举报

 💬个人网站:【芒果个人日志】​​​​​​  💬原文地址:SAP ABAP——OPEN SQL(三)【SELECT】 - 芒果个人日志 (wyz-math.cn)

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较深入的研究。

💅文章概要:本文主要介绍一下SAP ABAP中OPEN SQL的SELECT语句

🤟每日一言:比我差的人还没放弃,比我好的人仍在努力,我就更没资格说我无能为力!

目录

SELECT语句简介

SELECT SINGLE

SELECT SEVERAL LINE

SELECT并且输出打印的两种方式

1. SELECT...ENDSELECT

2.SELECT(LOOP...ENDLOOP)

数据库表SFLIGHT(最下方案例也使用该数据库表):

SELECT...AS

动态SELECT语句

1.使用DISTINCT

2. 不适用DISTINCT


SELECT语句简介

SELECT <lines> <columns> FROM <db> WHERE <condition>

其中<lines>代表查询的件数,<columns>代表查询的字段名


SELECT SINGLE

SELECT SINGLE <cols> FROM <db> WHERE <condition>

该语句用于从数据库表中查询单条数据


SELECT SEVERAL LINE

SELECT [DISTINCT] <columns> FROM <db> WHERE <condition>

[DISTINCT]为可选项,若选择则自动删除所查询数据的重复项,在本文最后的一个案例代码效果中有演示!!


SELECT并且输出打印的两种方式

1. SELECT...ENDSELECT

REPORT ZWYZTEST_FOR_MANGO.

DATA:GT_SFLIGHT TYPE TABLE OF SFLIGHT.
DATA:GS_SFLIGHT TYPE SFLIGHT.

SELECT * INTO GS_SFLIGHT FROM SFLIGHT WHERE CARRID = 'AC'.
   WRITE:/ GS_SFLIGHT-CARRID,GS_SFLIGHT-CONNID.
ENDSELECT.

SELECT~ENDSELECT

2.SELECT(LOOP...ENDLOOP)

REPORT ZWYZTEST_FOR_MANGO.

DATA:GT_SFLIGHT TYPE TABLE OF SFLIGHT.
DATA:GS_SFLIGHT TYPE SFLIGHT.

SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_SFLIGHT FROM SFLIGHT WHERE CARRID = 'AC'.

LOOP AT GT_SFLIGHT INTO GS_SFLIGHT.
   WRITE:/ GS_SFLIGHT-CARRID,GS_SFLIGHT-CONNID.
ENDLOOP.

SELECT(LOOP...ENDLOOP)

数据库表SFLIGHT(最下方案例也使用该数据库表):

SFLIGHT数据库表


SELECT...AS

SELECT <columns> AS <alias>...

AS可以用来为所查询的数据库表取别名,<alias>为表的别名


动态SELECT语句

可以动态定义SELECT语句的字段,保存动态语句的结构体GS_LINE最多可以容纳72位CHAR类型,结构体GS_LINE为NULL时与*相同

1.使用DISTINCT

REPORT ZWYZTEST_FOR_MANGO.

DATA:GT_SFLIGHT TYPE TABLE OF SFLIGHT.
DATA:GS_SFLIGHT TYPE SFLIGHT.
DATA:GS_LINE(72) TYPE C.

GS_LINE = 'CARRID CONNID'.

   SELECT DISTINCT (GS_LINE) INTO CORRESPONDING FIELDS OF TABLE GT_SFLIGHT FROM SFLIGHT WHERE CARRID = 
'AC'.

LOOP AT GT_SFLIGHT INTO GS_SFLIGHT.
   WRITE:/ GS_SFLIGHT-CARRID,GS_SFLIGHT-CONNID.
ENDLOOP.

动态SELECT使用(DISTINCT)

2. 不适用DISTINCT

REPORT ZWYZTEST_FOR_MANGO.

DATA:GT_SFLIGHT TYPE TABLE OF SFLIGHT.
DATA:GS_SFLIGHT TYPE SFLIGHT.
DATA:GS_LINE(72) TYPE C.

GS_LINE = 'CARRID CONNID'.

   SELECT (GS_LINE) INTO CORRESPONDING FIELDS OF TABLE GT_SFLIGHT FROM SFLIGHT WHERE CARRID = 
'AC'.

LOOP AT GT_SFLIGHT INTO GS_SFLIGHT.
   WRITE:/ GS_SFLIGHT-CARRID,GS_SFLIGHT-CONNID.
ENDLOOP.

动态SELECT不使用(DISTINCT)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-11-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SELECT语句简介
  • SELECT SINGLE
  • SELECT SEVERAL LINE
  • SELECT并且输出打印的两种方式
    • 1. SELECT...ENDSELECT
      • 2.SELECT(LOOP...ENDLOOP)
        • 数据库表SFLIGHT(最下方案例也使用该数据库表):
    • SELECT...AS
    • 动态SELECT语句
      • 1.使用DISTINCT
        • 2. 不适用DISTINCT
        相关产品与服务
        数据库
        云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档