当前位置: 首页 > 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.

http://www.lryc.cn/news/307118.html

相关文章:

  • C++完美转发【gpt】
  • C++之类和对象(2)
  • 时间序列分析实战(四):Holt-Winters建模及预测
  • Springboot之集成MongoDB无认证与开启认证的配置方式
  • BLEU: a Method for Automatic Evaluation of Machine Translation
  • 代码随想录算法训练营|day42
  • vscode与vue/react环境配置
  • Vue前端对请假模块——请假开始时间和请假结束时间的校验处理
  • 搭建freqtrade量化交易机器人
  • php伪协议 [SWPUCTF 2022 新生赛]ez_ez_php(revenge)
  • 1.1_1 计算机网络的概念、功能、组成和分类
  • pytorch中的各种计算
  • 大数据技术之 Kafka
  • 【GB28181】wvp-GB28181-pro部署安装教程(Ubuntu平台)
  • CentOS删除除了最近5个JAR程序外的所有指定Java程序
  • 面试redis篇-13Redis为什么那么快
  • python Matplotlib Tkinter--pack 框架案例
  • 连接未来:嵌入式系统在物联网时代的应用
  • 自动驾驶中的障碍物时间对齐法
  • 介绍 PIL+IPython.display+mtcnn for 音视频读取、标注
  • C语言中strstr函数的使用!
  • Vue项目中,src目录下的vue.app文件介绍
  • 【Android】坐标系
  • OSCP靶场--Slort
  • 大数据职业技术培训包含哪些
  • 【Java程序设计】【C00313】基于Springboot的物业管理系统(有论文)
  • TensorFlow训练大模型做AI绘图,需要多少的GPU算力支撑
  • docker创建mongodb数据库容器
  • Python并发编程:多线程-线程理论
  • 自定义Chrome的浏览器开发者工具DevTools界面的字体和样式