当前位置: 首页 > news >正文

native sql -ABAP开发从入门到精通笔记

  1. Native SQL

    1. SQL概要

    1. OPEN SQL读取数据

      1. Select

Select <lines> <columns>...

Select signle <cols>.... where.

列去重数据

Select distinct <cols>... where...

当取多条数据时,select结果会保存到内表中。

Select ... into...语句的结果不是保存在内保中,而是保存到了wa中,这里就要加一个endselect语句。

【如果是select into wa,就要使用endselect, 在endselect前输出所有的数据记录】

同样使用as来命名别名

<cols> As <alias>

动态select,即表名或者字段名,或者条件用变量来表示

对于动态select使用(dobj)来表示

      1. Into

Into 是存储select语句查询的结果值的目的地

可以是结构体,也可以是内表,也可以是字段

结构体

当查询一条语句时,使用wa,

此时使用corresponding fields of 语句会自动找到相同字段名匹配赋值。

Select ...

Into [CORRESPONGDING FIELDS OF ] wa.

内表

Select ...

Into| APPEND   [CORRESPONGDING FIELDS OF ] TABLE gv_itab PACKAGE SIZE n...

PACKAGE SIZE n...

表示,每次只读取n调数据添加到内表中。

此时注意要用endselect。

单字段

查询表个别子弹或者使用aggregate函数时,

但前提是这两个字段不能存在空白

Select carrid connid into (gv_carrid, gv_connid) from sfligth.

      1. From

Client specified 解除自动client设置。

BY PASSING BUFFER,不会从SAP本地缓冲器中读取数据,直接访问数据库读取数据

UP TO n ROWS,限制查询的个数。

静态选择表名

动态选择表名:(dobj)

JOIN语句

Inner join 与outer join

限制查询个数

静态选择表名

Select from <dbtab> [AS <alias>] <options>

动态选择表

Select ... from (dobj)

join语句

Select ...

from <tab>

[inner] join <dbtab> [as alias] on <cond> [options]...

select single a~carrid b~carname

into corresponding fields of gs_str

from sflight as a

inner join scarr as b

on a~carrid EQ b~carrid

where a~carrid = 'AA'.

Inner join 与 outer join

Select ...

From <tab>

Left [outer] join <dbtab> [as alias]

On <connd>

<options>

限制查询个数

UP TO <n> ROWS

Select ... from <tab> UP TO <n> ROWS.

      1. Where

EQ  =

NE  <>    ><

LT    <

LE    ≤

GT    >

GE    ≥

范围

WHERE  s  [not] between <f1> AND <f2>

字符串比较

Like

List value

[not] In ()

动态条件

将条件拼接为一个字符串,然后再where条件中,动态调用这个字符串变量

For all entries

Select ... for all entries in <itab>

Where <cond>

For all entries 与select的嵌套语句和子查询功能类似,

使用时,where语句中的条件必须是itab中存在的字段

      1. Grouping

Select <f1> <f2> <agg>...

Group by <f1> <f2>

Avg, count, max, min, stddev, sum

Group by 也可以动态指定。

Having,在group by之后的条件选择。

      1. Order by

Order by primary key [descending| ascending]

      1. Subquery

就是在select中嵌套select。

    1. OPEN SQL修改数据

      1. Insert

INSERT INTO <target> VALUES <wa>.

INSERT <target> FROM <wa>.

INSERT <target> FROM TABLE <itab> [ACCEPTIONG DUPLICATE KEYS].

这个语句是为了避免插入相同主键的数据是报错dump error

      1. Update

UPDATE INTO <target> <lines>.

UPDATE <target> FROM <wa>.

UPDATE <target> FROM TABLE <itab>.

UPDATE <target> SET <set1> <set2> WHERE <connd>.

      1. Delete

DELETE <target> FROM <wa>.

DELETE <dbtab>.

DELETE FROM <target> WHERE <connd>.

      1. Modify

MODIFY即有update的功能也有insert的功能,当数据库中表存在该值的时候刽update,不存在的时候,会insert

MODIFY <target> <lines>.

MODIFY <target> FROM <wa>.

MODIFY <target> FROM TABLE <itab>.

    1. NATIVE SQL

优点:可以直接访问数据库的表,可以实现OPENSQL中无法实现的sql

EXEC SQL.

<NATIVE SQL >

ENDEXCE.

相关文章:

native sql -ABAP开发从入门到精通笔记

Native SQL SQL概要 OPEN SQL读取数据 Select Select <lines> <columns>... Select signle <cols>.... where. 列去重数据 Select distinct <cols>... where... 当取多条数据时&#xff0c;select结果会保存到内表中。 Select ... into...语句的结果不…...

C++完美转发【gpt】

提问&#xff1a;用极其通俗易懂的文字解释C的完美转发 ChatGPT 好的&#xff0c;让我用非常通俗易懂的方式解释一下 C 中的完美转发。 假设你有一个房子&#xff08;函数&#xff09;&#xff0c;你想把家具&#xff08;参数&#xff09;从一个房间&#xff08;函数&#x…...

C++之类和对象(2)

目录 1.类的6个默认成员函数 2. 构造函数 2.1 概念 2.2 特性 3.析构函数 3.1 概念 3.2 特性 4. 拷贝构造函数 4.1 概念 4.2 特征 5.赋值运算符重载 5.1 运算符重载 5.2 赋值运算符重载 2. 赋值运算符只能重载成类的成员函数不能重载成全局函数 3. 用户没有显式实现时&…...

时间序列分析实战(四):Holt-Winters建模及预测

&#x1f349;CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一&#xff5c;统计学&#xff5c;干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项&#xff0c;参与研究经费10w、40w级横向 文…...

Springboot之集成MongoDB无认证与开启认证的配置方式

Springboot之集成MongoDB无认证与开启认证的配置方式 文章目录 Springboot之集成MongoDB无认证与开启认证的配置方式1. application.yml中两种配置方式1. 无认证集成yaml配置2. 有认证集成yaml配置 2. 测试1. 实体类2. 单元测试3. 编写Controller测试 1. application.yml中两种…...

BLEU: a Method for Automatic Evaluation of Machine Translation

文章目录 BLEU: a Method for Automatic Evaluation of Machine Translation背景和意义技术原理考虑 n n n - gram中 n 1 n1 n1 的情况考虑 n n n - gram中 n > 1 n\gt 1 n>1 的情况考虑在文本中的评估初步实验评估和结论统一不同 n n n 值下的评估数值考虑句子长度…...

代码随想录算法训练营|day42

第九章 动态规划 416.分割等和子集代码随想录文章详解 背包类型求解方法0/1背包外循环nums,内循环target,target倒序且target>nums[i]完全背包外循环nums,内循环target,target正序且target>nums[i]组合背包外循环target,内循环nums,target正序且target>nums[i] 416.分…...

vscode与vue/react环境配置

一、下载并安装VScode 安装VScode 官网下载 二、配置node.js环境 安装node.js 官网下载 会自动配置环境变量和安装npm包(npm的作用就是对Node.js依赖的包进行管理)&#xff0c;此时可以执行 node -v 和 npm -v 分别查看node和npm的版本号&#xff1a; 配置系统变量 因为在执…...

Vue前端对请假模块——请假开始时间和请假结束时间的校验处理

开发背景&#xff1a;Vueelement组件开发 业务需求&#xff1a;用户提交请假申请单&#xff0c;请假申请的业务逻辑处理 实现&#xff1a;用户选择开始时间需要大于本地时间&#xff0c;不得大于请假结束时间&#xff0c;请假时长根据每日工作时间实现累加计算 页面布局 在前…...

搭建freqtrade量化交易机器人

本文采用python量化机器人框架 freqtrade 开始操作&#xff01; freqtrade官方文档 官方文档内容过多&#xff0c;请先跟随本文入门阅读&#xff0c;后续深入学习可参考官方文档&#xff5e; 1. 准备云服务器 docker 环境 这里以云服务器选择 ubuntu 系统开始&#xff0c;先…...

php伪协议 [SWPUCTF 2022 新生赛]ez_ez_php(revenge)

打开题目 题目源代码如下 <?php error_reporting(0); if (isset($_GET[file])) {if ( substr($_GET["file"], 0, 3) "php" ) {echo "Nice!!!";include($_GET["file"]);} else {echo "Hacker!!";} }else {highlight_fi…...

1.1_1 计算机网络的概念、功能、组成和分类

文章目录 1.1_1 计算机网络的概念、功能、组成和分类&#xff08;一&#xff09;计算机网络的概念&#xff08;二&#xff09;计算机网络的功能&#xff08;三&#xff09;计算机网络的组成1.组成部分2.工作方式3.功能组成 &#xff08;四&#xff09;计算机网络的分类 总结 1.…...

pytorch中的各种计算

对tensor矩阵的维度变换&#xff0c;加减乘除等是深度学习中的常用操作&#xff0c;本文对一些常用方法进行总结 矩阵乘法 混合矩阵相乘&#xff0c;官网 torch.matmul(input, other, *, outNone) → Tensor这个方法执行矩阵相乘操作&#xff0c;需要第一个矩阵的最后一个维度…...

大数据技术之 Kafka

大数据技术之 Kafka 文章目录 大数据技术之 Kafka第 1 章 Kafka 概述1.1 定义1.2 消息队列1.2.1 传统消息队列的应用场景1.2.2 消息队列的两种模式 1.3 Kafka 基础架构 第 2 章 Kafka 快速入门2.1 安装部署2.1.1 集群规划2.1.2 集群部署2.1.3 集群启停脚本 2.2 Kafka 命令行操作…...

【GB28181】wvp-GB28181-pro部署安装教程(Ubuntu平台)

目录 前言1 安装依赖2 安装MySQL3 安装redis4 编译ZLMediaKit代码及依赖下载编译运行&#xff08;如果要运行wvp整个项目&#xff0c;这步可以先不执行&#xff09; 5 编译wvp-pro下载源码&#xff08;建议从github上下载&#xff0c;gitee上维护有时候不是很同步&#xff09;编…...

CentOS删除除了最近5个JAR程序外的所有指定Java程序

帮我写一个shell脚本&#xff0c;ps -eo pid,lstart,cmd --sort-start_time | grep "pgz-admin"查到的结果&#xff0c;返回的所有进程PID&#xff0c;第六个之上的&#xff0c;全部kill 当然&#xff0c;你可以创建一个简单的Shell脚本来完成这个任务。以下是一个例…...

面试redis篇-13Redis为什么那么快

Redis是纯内存操作,执行速度非常快采用单线程,避免不必要的上下文切换可竞争条件,多线程还要考虑线程安全问题使用I/O多路复用模型,非阻塞IOI/O多路复用模型 Redis是纯内存操作,执行速度非常快,它的性能瓶颈是网络延迟而不是执行速度, I/O多路复用模型主要就是实现了高效…...

python Matplotlib Tkinter--pack 框架案例

环境 python:python-3.12.0-amd64 包: matplotlib 3.8.2 pillow 10.1.0 版本一 import matplotlib.pyplot as plt from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk import tkinter as tk import tkinter.messagebox as messagebox…...

连接未来:嵌入式系统在物联网时代的应用

连接未来&#xff1a;嵌入式系统在物联网时代的应用 随着物联网技术的不断发展&#xff0c;嵌入式系统在物联网时代扮演着至关重要的角色。嵌入式系统作为连接物理世界和数字世界的桥梁&#xff0c;为物联网的实现提供了技术支持和基础设施。以下将从几个方面探讨嵌入式系统在…...

自动驾驶中的障碍物时间对齐法

描述 自动驾驶算法使用的系统往往不是实时系统&#xff0c;因此每个节点间拿到的数据可能不是同一时间的数据&#xff0c;从而造成系统误差&#xff0c;针对这一现象&#xff0c;工程上往往采用时间对齐内插外推法。这里我们用感知障碍物来举例。 自动驾驶系统有许多重要模块…...

Vite中如何配置自定义ESLint规则?(2026 Vite全新配置教程 全程避坑,亲测有效)

在 Vite 项目中配置自定义 ESLint 规则&#xff0c;主要分为 安装依赖、创建配置文件 和 &#xff08;可选&#xff09;集成到开发服务器 三个核心步骤。以下是详细指南&#xff1a; 第一步&#xff1a;安装必要的 ESLint 依赖 首先&#xff0c;你需要安装 ESLint 核心包以及针…...

毕业论文的“隐藏时间成本”,你计算过吗?

你有没有算过一笔账&#xff1a;一篇毕业论文从选题到定稿&#xff0c;真正花在“写”上面的时间是多少&#xff1f;我把这个问题抛给近一百名大学生&#xff0c;得到的回答出奇一致——大部分时间根本不是花在“写”&#xff0c;而是花在“不知道该写什么”和“写着写着就卡住…...

工业现场Docker容器启动失败率骤降83.6%:27个被忽略的udev规则、cgroup v2与RT kernel协同配置

第一章&#xff1a;工业现场Docker容器启动失败率骤降83.6%的全局洞察在某大型智能制造基地的边缘计算节点集群中&#xff0c;Docker容器平均启动失败率曾长期维持在12.4%&#xff0c;导致PLC数据采集中断、OPC UA网关服务延迟及实时告警丢失。通过系统性根因分析发现&#xff…...

5 大渗透靶场全攻略:DVWA、Pikachu、SQLi-Labs 一站式教程

前言 因为最近有任务需要搭建一些适合新手使用的靶场&#xff0c;所以收集了一下互联网常见的一些友好的新手渗透测试靶场。 分别是DVWA、Pikachu、SQLi-Labs、Upload-Labs、XSS-Labs。 DVWA靶场 DVWA靶场是一个专门用于漏洞测试和练习的Web应用程序&#xff0c;旨在为安全…...

关于苹果官宣库克卸任CEO 属于他的时代结束了

2026 年 4 月 21 日&#xff0c;Apple Investor Relations 页面更新了一条公告。这条公告本身很短&#xff0c;但刷屏速度很快——库克宣布将在 2026 年内卸任 CEO。 朋友圈、Tech 推主、各路科技博主纷纷下场&#xff0c;有人写悼词&#xff0c;有人分析继任者&#xff0c;有…...

Vivado 2017下Zynq-7000 PS端UDP通信实战:从lwIP配置到性能调优全记录

Vivado 2017环境下Zynq-7000 PS端UDP通信全流程实战指南 在嵌入式系统开发中&#xff0c;网络通信功能的实现往往面临工具链版本限制的挑战。本文将深入探讨如何在Vivado 2017这一相对陈旧的开发环境中&#xff0c;为Zynq-7000系列芯片的PS端构建完整的UDP通信功能。不同于新版…...

手把手教你玩转English-Corpora.org:从查词频到挖冷门搭配的完整指南

手把手教你玩转English-Corpora.org&#xff1a;从查词频到挖冷门搭配的完整指南 当你在写作中纠结"significant"和"crucial"哪个更学术&#xff0c;或是想找出"break the ice"的地道变体时&#xff0c;英语语料库就是你的秘密武器。不同于传统…...

【C# 14 原生AOT实战白皮书】:Dify客户端部署性能跃升3.7倍的5大关键配置与避坑清单

第一章&#xff1a;C# 14 原生AOT部署Dify客户端对比评测报告总览本章聚焦于使用 C# 14 全新原生 AOT&#xff08;Ahead-of-Time&#xff09;编译能力构建并部署 Dify 官方 API 客户端的实践路径与性能对比。Dify 作为开源 LLM 应用开发平台&#xff0c;其 RESTful 接口广泛用于…...

Python连接openGauss避坑实录:从Docker环境变量到psycopg2事务管理的完整流程

Python连接openGauss实战指南&#xff1a;从Docker部署到事务管理的全流程解析 当开发者决定在项目中采用openGauss这款企业级开源数据库时&#xff0c;Python作为最流行的编程语言之一&#xff0c;自然成为首选的交互工具。但在实际开发中&#xff0c;从环境搭建到代码实现&am…...

别再踩坑了!Spring Boot项目里Jackson处理LocalDateTime的正确姿势(附完整配置代码)

Spring Boot项目中Jackson处理LocalDateTime的终极指南 如果你正在使用Spring Boot开发Java应用&#xff0c;并且遇到了LocalDateTime序列化的问题&#xff0c;那么这篇文章就是为你准备的。作为现代Java开发中最常用的日期时间API之一&#xff0c;LocalDateTime在JSON序列化时…...