SQL语句是指程序从数据库把数据取出来的语句。每种语言都有SQL语句。下面我们来看看ABAP里面SQL语句.其基本构成要素如下:
SELECT ・・・
FROM ・・・
INTO ・・・
WHERE ・・・
3,关于取出结果放置地方
a,若取出的是单条数据
INTO (L_WK_MATNR, L_WK_WERKS)
INTO L_WA_VBAP
解释:
1,是把取出的数据放在变量里。
2,是放在工作区域里。放在工作区域的时候必须注意,工作区域跟SELECT后的数据的字段顺序,项目数,类型要一致。
b,若取出的是多条数据
INTO TABLE IT_EKBE
INTO CORRESPONDING FIELDS OF TABLE IT_EKBE
APPENDING TABLE IT_LGORT
解释:
1,是把取出的数据放在内部表里,内部表的字段顺序,项目数,类型要跟SELECT后一致。每执行一次,内部表里的数据都被刷新。
2,如果抽取的项目跟内部表构造不一样的场合就可以使用这方法,程序自动的把对应的项目赋给对应的值。但是此方法效率不高,慎用。
3,把取出的数据加在内部表的最后面。也就是原来的数据还是不变增加新取出的一条。一般跟CORRESPONDING FIELDS OF一起用。
4,指定取出条件
a,通常写法
WHERE VBELN = WA_DT200-VBELN
AND POSNR = WA_DT200-POSNR.
AND ( VGABE = C_TYPE_N
OR BEWTP = C_CTGR_NS ).
AND是且的意思,OR是或的意思。
b,用画面输入参数作条件查询
WHERE EBELN IN S_EBELN
AND VGABE = P_TYPE_N.
单输入框用=,多选框用IN,表示一个范围
c,用内部表作为条件时
FOR ALL ENTRIES IN IT_DT200
WHERE EBELN = IT_DT200-EBELN
AND EBELP = IT_DT201-EBELP.
用内部表IN IT_DT200里的EBELN和EBELP所有字段作为查询条件,如果抽到的数据有多条相同的话,只会取一条数据放到内部表里。
5,指定取出件数
a,只取一件的时候
有时候我们根据条件查询,同一条件下可能会查到多条数据,如果我们只要一条数据的话可以增加关键字SINGLE
SELECT SINGLE
SINGLE表示只取一条数据
b,取多条数据
SELECT ・・・
FROM ・・・
UP TO 1 ROWS
INTO ・・・
WHERE ・・・
ENDSELECT.
上面如果]UP TO 99 ROWS的话,就是取出99条数据。用1的话,一般可以判断有没有符合的数据。这个比COUNT(*)的效率要高的多
上面是SQL语法的一般用法,下面我们来ABAP培训一下SQL的结合,请看ABAP的SQL查询语句之结合