截取字符串
SUBSTRING( field,n,n )
SELECT MATNR FROM MARA WHERE SUBSTRING( MATNR,1,3 ) = '111' INTO TABLE @DATA(LT_MARA).
取数改变数据
CASE a~shkzg
WHEN 'H' THEN -1 * a~dmbtr
ELSE a~dmbtr
END AS dmbtr,
CASE a~shkzg
WHEN 'H' THEN -1 * a~arewr
ELSE a~arewr
END AS arewr,
替代for all entries in
inner join 替代 for all entries in
需要排序删除重复项或
查询数据库是否存在某条数据
SELECT SINGLE *
FROM dbtab
INTO (field)
WHERE any_key.
SELECT *
FROM dbtab
UP TO 1 ROWS
INTO (field)
WHERE any_key.
SELECT COUNT(*)
FROM dbtab
WHERE any_key.
参考链接:
ABAP-SQL 存在性校验:查询某一数据库表是否存在一条{select single | up to 1 rows | select count(*)}
select 时忽略大小写
将c和d都转换为大写进行取数
TRANSLATE d TO UPPER CASE.
select a from b where upper( c )= d
拆分字符串
SPLIT lv_str at '_' into table data(lt_res).
OLE单元格内换行(实际使用中newline有效,cr_lf无效)
DATA: lv_crlf TYPE c VALUE cl_abap_char_utilities=>cr_lf.
DATA: lv_line TYPE c VALUE cl_abap_char_utilities=>newline.
CONCATENATE 'line1' lv_crlf 'line2' INTO lv_msg1.
CONCATENATE 'line1' lv_line 'line2' INTO lv_msg2 .