SAP 中的ABAP OPEN SQL

一、ABAP OPEN SQL语法

如果要在ABAP中使用Open SQL 需要注意使用符合其规则的语法,SQL过程中的变量都需要使用@来转义,以下为普通SQL 与 Open SQL 之间的语法转换,

  1. 普通SQL:
SELECT MAX( MATNR ) INTO IT_TAB-MATNRFROM MARA
WHERE MATNR LIKE LV_MATNR_01
  1. Open SQL:
 SELECT MAX( MATNR )FROM MARAWHERE MATNR LIKE @LV_MATNR_01INTO @DATA(GV_MATNR)
二、Open SQL CONCAT函数

1、在ABAP中使用CONCAT函数,需要符合ABAP Open SQL的语法,包括ABAP中的变量要用@转义,列表中的元素必须使用逗号分隔,INTO放置在SQL的最后,CONCAT函数可以将获取值粘贴起来,可以定义粘贴字段的占长以及占位符。
2、实例:使用lpad函数将字段填充,并使用concat函数拼接。

SELECT CONCAT( CONCAT( CONCAT( MANDT, LPAD( CARRID,15,'# ' ) ),LPAD( CARRNAME,15,'% ' ) ) ,LPAD( CURRCODE,15,'  ' ) ) AS LINEFROM SCARRINTO TABLE @DATA(RESULT).
三、Open SQL LENGTH函数

1、在ABAP中使用LENGTH函数,需要符合ABAP Open SQL的语法,包括ABAP中的变量要用@转义,列表中的元素必须使用逗号分隔,INTO放置在SQL的最后,LENGTH函数可以将获取值的长度作为SELECT的条件。
2、实例:使用函数length获取字段CARRNAME长度大于9的数据,如下

SELECT MANDT ,CARRID, CARRNAME ,CURRCODEFROM SCARRWHERE LENGTH( CARRNAME ) > 9INTO TABLE @DATA(RESULT).
四、Open SQL LEFT与RIGHT函数

1、在ABAP中使用LEFT与RIGHT函数,需要符合ABAP Open SQL的语法,包括ABAP中的变量要用@转义,列表中的元素必须使用逗号分隔,INTO放置在SQL的最后,LEFT函数可以截取字段值中从左侧开始的部分字符,而RIGHT函数是从右侧截取,在语法中可以定义截取的长度。
2、实例1:使用left函数获取名字的左边2位

SELECT left( carrname,2 ) AS left ,mandt ,carrid ,currcodeFROM scarr INTO TABLE @DATA(lt_scarr_left).

3、实例2:使用right函数获取名字的右边4位

SELECT right( carrname,4 ) AS right ,mandt ,carrid ,currcodeFROM scarrINTO TABLE @DATA(lt_scarr_right).
五、Open SQL LOWER与UPPER函数实现大小写转换

1、在ABAP中使用LOWER与UPPER函数,需要符合ABAP Open SQL的语法,包括ABAP中的变量要用@转义,列表中的元素必须使用逗号分隔,INTO放置在SQL的最后,LOWER与UPPER函数可以将获取的字段值转换成全部大写或全部小写。
2、实例1:使用lower函数将字段carrname全都转为小写。

SELECT lower( carrname ) AS lower ,mandt ,carrid ,currcodeFROM scarrINTO TABLE @DATA(lt_scarr_lower).

3、实例2:使用upper函数将字段carrname全都转为大写。

SELECT upper( carrname ) AS upper ,mandt ,carrid ,currcodeFROM scarrINTO TABLE @DATA(lt_scarr_upper)
六、Open SQL LPAD与 RPAD 函数

1、在ABAP中使用LPAD及 RPAD 函数,需要符合ABAP Open SQL的语法规则,包括ABAP中的变量要用@转义,表中的字段必须使用逗号分隔,INTO放置在SQL的最后等,LPAD与 RPAD 函数可以在Select中为获取的字段值填充指定的字符串,在ABAP中的语法格式分别为LPAD( arg, len, src );RPAD( arg, len, src ) ,三个参数分别指定了操作字段;填充后值的长度;填充字符.
2、实例1:使用函数lpad函数将字段carrname左边填充字符**&**,字符长度到18:

 SELECT lpad( carrname , 18 , '&' ) AS carrname ,mandt ,carrid ,currcodeFROM scarrINTO TABLE @DATA(lt_scarr_lpad). 

3、实例2:使用函数rpad函数将字段carrname右边填充字符**&**,字符长度到15:

SELECT rpad( carrname , 15 , '!' ) AS carrname ,mandt ,carrid ,currcodeFROM scarr INTO TABLE @DATA(lt_scarr_rpad). 
七、Open SQL LTRIM与 RTRIM 函数

1、在ABAP中使用LTRIM与 RTRIM 函数,需要符合ABAP Open SQL的语法规则,包括ABAP中的变量要用@转义,表中的字段必须使用逗号分隔,INTO放置在SQL的最后等,LTRIM与 RTRIM 函数可以在Select中为获取的字段值去除指定的字符串,在ABAP中的语法格式分别为LTRIM( arg, char );RTRIM( arg, char ) ,两个参数分别指定了操作字段和去除字符。
2、实例1:使用ltrim函数去除字符carrname字段左边的X字符。

SELECT ltrim( carrname , 'x' ) AS carrname ,mandt ,carrid ,currcodeFROM scarr INTO TABLE @DATA(lt_scarr_ltrim).

3、实例2:使用rtrim函数去除字符carrname字段右边的X字符。

SELECT rtrim( carrname , 'x' ) AS carrname ,mandt ,carrid ,currcodeFROM scarr INTO TABLE @DATA(lt_scarr_rtrim). 
八、Open SQL REPLACE函数

1、在ABAP中使用REPLACE函数,需要符合ABAP Open SQL的语法规则,包括ABAP中的变量要用@转义,表中的字段必须使用逗号分隔,INTO放置在SQL的最后等,L REPLACE函数可以在Select中为替换值中的某段字符串,在ABAP中的语法格式为REPLACE( arg1, arg2, arg3 ) , 其意为用arg3替换arg1中出现的所有arg2 。
2、实例1:使用函数replace函数将carrname字段中的px转换为yy。

SELECT replace( carrname , 'px' , 'yy' ) AS carrname ,mandt ,carrid ,currcodeFROM scarr INTO TABLE @DATA(lt_scarr_replace). 
九、Open SQL SUBSTRING函数

1、在ABAP中使用SUBSTRING函数,需要符合ABAP Open SQL的语法规则,包括ABAP中的变量要用@转义,表中的字段必须使用逗号分隔,INTO放置在SQL的最后等,SUBSTRING函数可以在Select中截取字段值中任意位置任意长度的字符串,在ABAP中的语法格式为SUBSTRING( arg, pos, len ) , 其意为从pos位开始截取arg的len位字符 。
2、实例1:使用substring函数截取carrname字段从第4位开始5个长度。

SELECT substring( carrname , 4 , 5 ) AS carrname ,mandt ,carrid ,currcodeFROM scarrWHERE carrid <> ''INTO TABLE @DATA(lt_scarr_sub).

*注意:所有函数均可配合使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/5858.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是HTTP 500错误,怎么解决

目录 什么是HTTP 500 HTTP 500错误的常见原因&#xff1a; 如何修复HTTP 500 总结 什么是HTTP 500 错误 HTTP 500内部服务器错误是指在客户端发出请求后&#xff0c;服务器在处理请求过程中发生了未知的问题&#xff0c;导致服务器无法完成请求。HTTP 500错误是一个通用的服…

Mybatis-Plus(三)--Mybatis-Plus配置和条件构造器

一.配置 在MP中有大量的配置&#xff0c;其中有一部分是Mybatis原生的配置&#xff0c;另一部分是MP的配置&#xff0c;详情&#xff1a;https://mybatis.plus/config 1.基本配置 【1】configLocation--自己单独的MyBatis配置的路径 #MyBatis配置文件位置&#xff0c;如果您…

Spring-缓存初步认识

Spring-缓存 简单介绍 缓存是一种介于数据永久存储介质和数据应用之间的数据临时存储介质缓存有效提高读取速度&#xff0c;加速查询效率 spring使用缓存方式 添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring…

海康摄像头开发笔记(一):连接防爆摄像头、配置摄像头网段、设置rtsp码流、播放rtsp流、获取rtsp流、调优rtsp流播放延迟以及录像存储

文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/131679108 红胖子(红模仿)的博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结…

每日一题——反转链表

题目 给定一个单链表的头结点pHead(该头节点是有值的&#xff0c;比如在下图&#xff0c;它的val是1)&#xff0c;长度为n&#xff0c;反转该链表后&#xff0c;返回新链表的表头。 数据范围&#xff1a;0≤n≤1000 要求&#xff1a;空间复杂度 O(1) &#xff0c;时间复杂度 O…

Python实战项目——旅游数据分析(四)

由于有之前的项目&#xff0c;所以今天我们直接开始&#xff0c;不做需求分析&#xff0c;还不会需求分析的可以看我之前的文章。Python实战项目——用户消费行为数据分析&#xff08;三&#xff09; 导入库 import numpy as np import pandas as pd import matplotlib.pyplo…

PHP后台登录功能单账号登录限制

PHP后台登录功能单账号登录限制 单账号登陆是什么第一步创建数据表第二步创建登录页面test2.html第三步创建登录提交test2.php第四步访问后台首页第五步演示 单账号登陆是什么 一个用户只能登录一个账号通常被称为单账号登录限制或单用户单账号限制。这意味着每个用户只能使用…

Linux 学习记录53(ARM篇)

Linux 学习记录53(ARM篇) 本文目录 Linux 学习记录53(ARM篇)一、内存读写指令1. 在C语言中读取内存2. 指令码及功能3. 格式4. 使用示例5. 寻址方式(1. 前索引方式(2. 后索引方式(3. 自动索引 6.批量寄存器操作指令(1. 操作码(2. 格式(3. 使用示例(4. 地址增长方式>1 ia后缀&…

========Java基础——小结1========

一、Java 两大版本 Java 主要分为两个版本: Java SE 和Java EE。 Java SE 全称Java Platform Standard Edition&#xff0c;是 Java 的标准版&#xff0c;主要用于桌面应用程序开发&#xff0c;它包含了 Java 语言基础、JDBC (Java 数据库连接)、I/O (输入/输出)、TCP/IP 网络…

2.8 Android ebpf帮助函数解读(七)

121.long bpf_read_branch_records(struct bpf_perf_event_data *ctx, void *buf, u32 size, u64 flags) 描述:对于附加到 perf 事件的 eBPF 程序,检索与 ctx 关联的分支记录(struct perf_branch_entry),并将其存储在 buf 指向的缓冲区中,最大大小为size字节。 返回值:…

股票基金入门知识

1.开盘价和收盘价如何产生 时间9:30-11:30 13:00-15:00 集合竞价时间段&#xff1a;9:15-9:25 以此产生开盘价 最后集中竞价时间段&#xff1a;深市14:57-15:00 &#xff0c;以此产生收盘价。 沪市则采用最后一分钟加权得出收盘价影响股价的因素 市场投资情绪&#xff0c;宏观…

Hadoop——DataGrip连接MySQL|Hive

1、下载 DataGrip下载&#xff1a;DataGrip: The Cross-Platform IDE for Databases & SQL by JetBrains 2、破解 破解链接&#xff1a;https://www.cnblogs.com/xiaohuhu/p/17218430.html 3、启动环境 启动Hadoop&#xff1a;到Hadoop的sbin目录下右键管理员身份运行…

Spring Boot 全局异常处理

Spring Boot 全局异常处理 ErrorCode.java (此枚举类中包含了异常的唯一标识、HTTP 状态码以及错误信息) 这个类的主要作用就是统一管理系统中可能出现的异常&#xff0c;比较清晰明了。但是&#xff0c;可能出现的问题是当系统过于复杂&#xff0c;出现的异常过多之后&#…

【C++】list 模拟笔记

文章目录 list定义结点类&#xff08;list_node&#xff09;为什么封装迭代器为类 &#xff1f;库里面模板多参数的由来 &#xff1f;为什么普通迭代器不能隐式类型转换成const迭代器&#xff1f;迭代器位置指向及其返回值和整体代码 list list 和前面学习的 string 和 vector …

微信小程序使用ECharts的示例详解

目录 安装 ECharts 组件使用 ECharts 组件图表延迟加载 echarts-for-weixin 是 ECharts 官方维护的一个开源项目&#xff0c;提供了一个微信小程序组件&#xff08;Component&#xff09;&#xff0c;我们可以通过这个组件在微信小程序中使用 ECharts 绘制图表。 echarts-fo…

excel中单行换成多行

今天碰以下情况&#xff1a; 这在excel表中是在一个单元格&#xff0c;现在需要对其进行转换&#xff0c;将一个单元格换成多行 步骤&#xff1a; 1.删除换行符&#xff0c;添加一个逗号 2.选择数据-分列-分隔字符-逗号-确定 3.复制上述数据&#xff0c;选择性粘贴-转置 完…

MemberApplication

目录 1 MemberApplication 1.1 /// 发送验证码 1.1.1 //验证码超时时间 1.2 /// 验证码验证 MemberApplication /// 发送验证码

2816. 判断子序列

题目链接&#xff1a; 自己的做法&#xff1a; #include <bits/stdc.h>using namespace std;const int N 1e5 10; int a[N], b[N]; int main() {int n, m;bool flag true;scanf("%d%d", &n, &m);for (int i 0; i < n; i) scanf("%d"…

笙默考试管理系统-MyExamTest(10)

笙默考试管理系统-MyExamTest&#xff08;10&#xff09; 目录 一、 笙默考试管理系统-MyExamTest 二、 笙默考试管理系统-MyExamTest 三、 笙默考试管理系统-MyExamTest 四、 笙默考试管理系统-MyExamTest 五、 笙默考试管理系统-MyExamTest 笙默考试管理系统-MyExa…

哈希:探索快速的数据存储和搜索方法

哈希&#xff1a;探索快速的数据存储和搜索方法 哈希表作为一种高效的数据存储结构&#xff0c;可以使数据的存储位置与关键码之间建立一一映射的关系&#xff0c;从而加快元素的搜索速度。然而&#xff0c;哈希方法也面临着哈希冲突的问题&#xff0c;即不同的关键字通过相同…