zoukankan      html  css  js  c++  java
  • [转]ABAP数据库操作系列(3)

    继续我们的数据库操作语句讲解:From

    2. from详解:
      * From dbtab :从数据库表或者视图中选取数据。数据库表名称直接在abap中使用,必须能够被abap字典识别。
      * From dbtab [as xxx]: 定义数据表的别名,选择数据。
      * From “table1” join “table2” on “condition”
        = From “table1” inner join “table2” on “condition” : table1和table2做内联,大家可以根据下面的例子了解什么是内联接:
    Table 1                      Table 2
    |----|----|----|----|        |----|----|----|----|----|
    | A  | B  | C  | D  |        | D  | E  | F  | G  | H  |
    |----|----|----|----|        |----|----|----|----|----|
    | a1 | b1 | c1 | 1  |        | 1  | e1 | f1 | g1 | h1 |
    | a2 | b2 | c2 | 1  |        | 3  | e2 | f2 | g2 | h2 |
    | a3 | b3 | c3 | 2  |        | 4  | e3 | f3 | g3 | h3 |
    | a4 | b4 | c4 | 3  |        |----|----|----|----|----|
    |----|----|----|----|
                                /
                               /
                              /
                             /
                            /
        Inner Join
        |----|----|----|----|----|----|----|----|----|
        | A  | B  | C  | D  | D  | E  | F  | G  | H  |
        |----|----|----|----|----|----|----|----|----|
        | a1 | b1 | c1 | 1  | 1  | e1 | f1 | g1 | h1 |
        | a2 | b2 | c2 | 1  | 1  | e1 | f1 | g1 | h1 |
        | a4 | b4 | c4 | 3  | 3  | e2 | f2 | g2 | h2 |
        |----|----|----|----|----|----|----|----|----|

    程序实例:
    DATA: DATE   LIKE SFLIGHT-FLDATE,
          CARRID LIKE SFLIGHT-CARRID,
          CONNID LIKE SFLIGHT-CONNID.
    SELECT F~CARRID F~CONNID F~FLDATE
        INTO (CARRID, CONNID, DATE)
        FROM SFLIGHT AS F INNER JOIN SPFLI AS P
               ON F~CARRID = P~CARRID AND
                  F~CONNID = P~CONNID
        WHERE P~CITYFROM = 'FRANKFURT'
          AND P~CITYTO   = 'NEW YORK'
          AND F~FLDATE BETWEEN '20010910' AND '20010920'
          AND F~SEATSOCC < F~SEATSMAX.
      WRITE: / DATE, CARRID, CONNID.
    ENDSELECT.
      * From “table1” left join “table2” on “condition”
        = From “table1” left outer join “table2” on “condition” :table1和table2做外联,大家可以根据下面的例子了解什么是外联接:
    Table 1                      Table 2
    |----|----|----|----|        |----|----|----|----|----|
    | A  | B  | C  | D  |        | D  | E  | F  | G  | H  |
    |----|----|----|----|        |----|----|----|----|----|
    | a1 | b1 | c1 | 1  |        | 1  | e1 | f1 | g1 | h1 |
    | a2 | b2 | c2 | 1  |        | 3  | e2 | f2 | g2 | h2 |
    | a3 | b3 | c3 | 2  |        | 4  | e3 | f3 | g3 | h3 |
    | a4 | b4 | c4 | 3  |        |----|----|----|----|----|
    |----|----|----|----|
                                /
                               /
                              /
                             /
                            /
        Left Outer Join
        |----|----|----|----|----|----|----|----|----|
        | A  | B  | C  | D  | D  | E  | F  | G  | H  |
        |----|----|----|----|----|----|----|----|----|
        | a1 | b1 | c1 | 1  | 1  | e1 | f1 | g1 | h1 |
        | a2 | b2 | c2 | 1  | 1  | e1 | f1 | g1 | h1 |
        | a3 | b3 | c3 | 2  |NULL|NULL|NULL|NULL|NULL|
        | a4 | b4 | c4 | 3  | 3  | e2 | f2 | g2 | h2 |
        |----|----|----|----|----|----|----|----|----|

    * From (sorce_text):动态编程时候使用,同select 的(source_text)使用。
    CONSTANTS: flight_tab_name(30) VALUE 'SPFLI'.
    DATA: from_clause TYPE STRING.
    DATA: BEGIN OF wa,
            name(20) TYPE C,
            connid   TYPE spfli-connid,
          END OF wa.
    CONCATENATE flight_tab_name ' AS t1'
                ' JOIN scarr AS t2 ON t1~carrid = t2~carrid'
       INTO from_clause.
    SELECT t1~connid t2~carrname AS name
        FROM (from_clause)
        INTO CORRESPONDING FIELDS OF wa.
      WRITE: / wa-name, wa-connid.
    ENDSELECT.

    几个附加选项:
      …client specified:不考虑集团,把数据选取出来。
      …bypassing buffer:直接从数据库选取数据,不使用sap buffer。
      …up to “n” rows:选择的数据限制在n行。

  • 相关阅读:
    jquery笔记
    linux的日常经常使用的命令
    IDEA设置类注解和方法注解(详解)
    java读取项目或包下面的属性文件方法
    枚举类的使用
    将一个浮点数转化为人民币大写字符串
    简单五子棋实现
    crontab 设置服务器定期执行备份工作
    linux创建日期文件名
    代码层读写分离实现
  • 原文地址:https://www.cnblogs.com/wequst/p/1513861.html
Copyright © 2011-2022 走看看