Open SQL能够方便的实现数据库数据的读取及修改,其对数据库主要操作语法包括:SELECT、UPDATE、INSERT、DELETE及MODIFY。
Open SQL的执行状态通过系统变量SY-SUBRC来表现,如果SY-SUBRC值为0,则表示Open SQ执行成功,如果不为0,则表示执行失败。
1.SELECT语法结构
SELECT 语句用于实现对数据的查询,其语法结构如下:
SELECT <result> FROM <dbtab>
INTO <target>
WHERE <condition>
GROUP BY <fields> ORDER BY <fields>
其中各关键字的属性描述如下:
SELECT <result>:具体的查询字段。
SELECT SINGLE:定义单行查询。
FROM <dbtab>:所查询的透明表。
INTO <target>:查询结果赋值对象,赋值到具体表或结构体。
INTO (<f1>...<fn>):将查询结果赋值到具体字段。
INTO CORRESPONDING FILES OF <itab>:将查询结果按字段匹配赋值给具体的表或者结构体。
WHERE <condition>:查询条件。
GROUP BY <fileds>:分组查询条件。
ORDER BY <fields>:排序条件。
[For Example]
TABLES:SPFLI.
DATA sitab LIKE TABLE OF SPFLI WITH HEADER LINE.
SELECT SINGLE CarrId ConnId Airpfrom Airpto FROM SPFLI INTO CORRESPONDING FIELDS OF sitab.
WRITE: / 'sitab-CarrId=',sitab-CarrId,
/ 'sitab-ConnId=',sitab-ConnId,
/ 'sitab-Airpfrom=',sitab-Airpfrom,
/ 'siab-Airpto=',sitab-Airpto.
输出结果如下截图:
使用SELECT...ENDSELECT语法能循环读取及操作查询,通过系统参数SY-DBCNT可以获取当前读取数据的行数,该语法中不能加入SINGLE、INTO CORRESPONDING FIELDS、TABLE等关键字,中间可以使用CHECK语法来判断查询值,如下:
[For Example]
TABLES:SBOOK.
DATA:COUNTS TYPE I,TOTAL TYPE P DECIMALS 2,AVERAGE TYPE F.
DATA:CONNID LIKE SBOOK-CONNID.
*SELECT SINGLE LUGGWEIGHT FROM SBOOK INTO TOTAL.
*WRITE TOTAL.
SELECT CONNID COUNT(*) SUM( LUGGWEIGHT ) AVG( LUGGWEIGHT )
INTO (CONNID,COUNTS,TOTAL,AVERAGE)
FROM SBOOK
*WHERE CARRID = 'LH' AND FLDATE = '19950228'
GROUP BY CONNID.
WRITE: / 'SY-DBCNT=',SY-DBCNT,
/ 'CONNID=', CONNID,
/ 'COUNTS=',COUNTS,
/ 'TOTAL=',TOTAL,
/ 'AVERAGE=',AVERAGE.
CHECK TOTAL > 10.
WRITE: / 'THW SUM WEIGHT MORE THAN 10.'.
ENDSELECT.
输出结果如下截图:
2.SELECT常用标准函数
Open SQL 常用的标准函数如下:
COUNT():统计查询总数。
SUM():统计表中某个数值字段的总和。
AVG():统计表中某个数值字段的平均值。
MAX():统计表中某个字段的最大值。
MIN() :统计表中某个字段的最小值。