Select
Select signle
列去重数据
Select distinct
当取多条数据时,select结果会保存到内表中。
Select ... into...语句的结果不是保存在内保中,而是保存到了wa中,这里就要加一个endselect语句。
【如果是select into wa,就要使用endselect, 在endselect前输出所有的数据记录】
同样使用as来命名别名
动态select,即表名或者字段名,或者条件用变量来表示
对于动态select使用(dobj)来表示
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.
Client specified 解除自动client设置。
BY PASSING BUFFER,不会从SAP本地缓冲器中读取数据,直接访问数据库读取数据
UP TO n ROWS,限制查询的个数。
静态选择表名
动态选择表名:(dobj)
JOIN语句
Inner join 与outer join
限制查询个数
静态选择表名
Select … from
动态选择表
Select ... from (dobj)
join语句
Select ...
from
[inner] join
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
On
限制查询个数
UP TO
Select ... from
EQ =
NE <> ><
LT <
LE ≤
GT >
GE ≥
范围
WHERE s [not] between
字符串比较
Like
List value
[not] In ()
动态条件
将条件拼接为一个字符串,然后再where条件中,动态调用这个字符串变量
For all entries
Select ... for all entries in
Where
For all entries 与select的嵌套语句和子查询功能类似,
使用时,where语句中的条件必须是itab中存在的字段
Select
Group by
Avg, count, max, min, stddev, sum
Group by 也可以动态指定。
Having,在group by之后的条件选择。
Order by primary key [descending| ascending]
就是在select中嵌套select。
INSERT INTO
INSERT
INSERT
这个语句是为了避免插入相同主键的数据是报错dump error
UPDATE INTO
UPDATE
UPDATE
UPDATE
DELETE
DELETE
DELETE FROM
MODIFY即有update的功能也有insert的功能,当数据库中表存在该值的时候刽update,不存在的时候,会insert
MODIFY
MODIFY
MODIFY
优点:可以直接访问数据库的表,可以实现OPENSQL中无法实现的sql
EXEC SQL.
ENDEXCE.