ABAP语法笔记07 - SELECT

" 基本的查询语句
" 从表中满足条件的数据,按GT字段顺序放入数据(字段信息不匹配会取值错误)
SELECT FIELDNAME
FROM TAB_NAME
INTO TABLE GT
WHERE expression . 
" 添加 CORRESPONDING FIELDS OF 后表示对应字段插入数据
SELECT FIELDNAME
FROM TAB_NAME
INTO CORRESPONDING FIELDS OF TABLE GT
WHERE expression . 
" 查询单条数据 
SELECT SINGLE FIELDNAME
FROM TAB_NAME
INTO LS   " 当使用TABLES声明后,这里的INTO可以省略,默认取数到TABLES声明的结构中
WHERE expression .
 

 

" 多表联合查询 
" INNER JOIN 关联调节写在ON上,限制条件写WHERE
SELECT A~FIELD1 
       B~FIELD2
FROM TAB1 AS A
INNER JOIN TAB2 AS B ON A~KEY = B~KEY
INTO CORRESPONDING FIELDS OF TABLE GT
WHERE A~FIELD3 IN S_FIELD3
  AND B~FIELD4 IN S_FIELD4 .

" LEFT OUTER JOIN 左表条件写在WHERE 右表写在ON上
SELECT A~FIELD1 
       B~FIELD2
FROM TAB1 AS A
LEFT OUTER JOIN TAB2 AS B ON A~KEY = B~KEY 
                         AND B~FIELD4 IN S_FIELD4 
INTO CORRESPONDING FIELDS OF TABLE GT
WHERE A~FIELD3 IN S_FIELD3 .

 

" 摘录网上说明:
" 多表查询时,主键使用JOIN链接似乎更合适,其他情况下内表处理效率更高  
" FOR ALL ENTRIES IN 效率比JOIN 还低
" CORRESPONDING FIELDS OF 会影响效率

SELECT A~FIELD1 
FROM TAB1 AS A
INTO CORRESPONDING FIELDS OF TABLE GT
WHERE A~FIELD3 IN S_FIELD3 .

SELECT B~FIELD2
FROM TAB2 AS B 
INTO CORRESPONDING FIELDS OF TABLE GT
FOR ALL ENTRIES IN GT
WHERE B~KEY EQ GT-KEY
  AND B~FIELD4 IN S_FIELD4 .

 

RANGES R_FIELD FOR TAB_NAME .  " 声明一个带表头行的范围变量

 

posted @ 2022-10-02 17:20  BoyBo  阅读(433)  评论(0)    收藏  举报