IF;
CASE; WHEN
如果仅查询一个字段和多个值,建议用case
DO; ENDDO 无限循环,遇见EXIT跳出
DO 10 TIMES; ENDDO 循环十次
WHILE; ENDWHILE 一直执行,直到不满足while后面的条件
SY-TABIX 保存当前所在层的循环次数
终止循环
CONTINUE (无条件退出当前循环,跳过一次)
CHECK (有条件退出当前循环,跳过一次)
EXIT (完全终止循环)
内连接
语法:SELECT.......
FROM <TAB> INNER JOIN <DBTAB> ON <COND> <OPTIONS>
WHERE......
连接表达式把符合条件的<tab>中的每一行与<dbtab>中的行连接起来。这意味着通过连接始终要有来自右边表中的一行或者多行连接到右边表的每一行。
左连接
语法:SELECT.......
FROM <TAB> LEFT JOIN <DBTAB> ON <COND> <OPTIONS>
WHERE......
表连接和内连接的方式相同,只不过从<tab>中选取的所有行都包括在最终选择结果中。如果<dbtab>中不包含任何满足条件<cond>的行,系统将在选择结果中包含一行,其中来自<dbtab>的列为空。
-
区别
select ENDSELECT 每执行一次和数据库交互一次,风险较大
select into table 执行完和数据库交互一次,LOOP循环
CORRESPONDING FIELDS OF 可以匹配数据,但会降低运行速度
删除指定的一行
DELETE FROM ztfin_pcost_item WHERE zfiytdj = lc_num.
更新指定的一行
UPDATE ztfin_zfi_ytfy SET belnr = ls_ytfy-belnr WHERE zfiytdj = i_rel_docno.
函数
-
CONVERSION_EXIT_MATN1_INPUT
加前导0 -
CONVERSION_EXIT_MATN1_OUTPUT
去前导0
循环你所要去/加0的内表