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


    1. Native SQL

      1. SQL概要

      1. OPEN SQL读取数据

        1. Select

    Select ...

    Select signle .... where.

    列去重数据

    Select distinct ... where...

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

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

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

    同样使用as来命名别名

    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 [AS ]

    动态选择表

    Select ... from (dobj)

    join语句

    Select ...

    from

    [inner] join [as alias] on [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

    Left [outer] join [as alias]

    On

    限制查询个数

    UP TO ROWS

    Select ... from UP TO ROWS.

        1. Where

    EQ  =

    NE  <>    ><

    LT    <

    LE    ≤

    GT    >

    GE    ≥

    范围

    WHERE  s  [not] between AND

    字符串比较

    Like

    List value

    [not] In ()

    动态条件

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

    For all entries

    Select ... for all entries in

    Where

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

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

        1. Grouping

    Select ...

    Group by

    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 VALUES .

    INSERT FROM .

    INSERT FROM TABLE [ACCEPTIONG DUPLICATE KEYS].

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

        1. Update

    UPDATE INTO .

    UPDATE FROM .

    UPDATE FROM TABLE .

    UPDATE SET WHERE .

        1. Delete

    DELETE FROM .

    DELETE .

    DELETE FROM WHERE .

        1. Modify

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

    MODIFY .

    MODIFY FROM .

    MODIFY FROM TABLE .

      1. NATIVE SQL

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

    EXEC SQL.

    ENDEXCE.

  • 相关阅读:
    记录一个笔误引发的bug导致生产环境报错,但是本地环境,测试环境运行正常
    nvm (node 版本管理器)
    0108函数的连续性与间断点-函数与极限-高等数学
    【Python数据分析】Pandas常用操作(二)
    Python多线程爬取数据代码模版
    新的 Work Node 如何加入 K8s 集群 - Kubeadm ?
    浏览器打印边距,默认/无边距,占满1页A4
    解读《领域驱动设计 软件核心复杂性应对之道》(二)
    让SQL起飞(优化)
    电流表指针状态识别原理是什么---豌豆云
  • 原文地址:https://blog.csdn.net/guduchangjian/article/details/136309545