SAP-ABAP数据库查询方式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1、IN (‘8001’ ,‘8005’) 在范围内
2、NOT IN (‘8001’ ,‘8005’) 不在范围内
3、DATA: MAKTX_EXP LIKE MAKT-MAKTX. 模糊查询
CONCATENATE ‘%‘MAKTX_TXT’%’ INTO MAKTX_EXP.
SELECT * FROM MAKT INTO CORRESPONDING FIELDS OF TABLE MAKT_TAB
WHERE MAKTX like MAKTX_EXP.

4、left join 、right join 、inner join之间的区别
  left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
  right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
  inner join(等值连接) 只返回两个表中联结字段相等的行
举例如下:

表A记录如下:
aID     aNum
1     a20050111
2     a20050112
3     a20050113
4     a20050114
5     a20050115
表B记录如下:
bID     bName
1     2006032401
2     2006032402
3     2006032403
4     2006032404
8     2006032408

1.left join
sql语句如下:
select * from A
left join B
on A.aID = B.bID
结果如下:
aID aNum   bID   bName
1 a20050111  1     2006032401
2 a20050112  2     2006032402
3 a20050113  3     2006032403
4 a20050114  4     2006032404
5 a20050115  NULL     NULL
(所影响的行数为 5 行)
结果说明:
left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.
换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).
B表记录不足的地方均为NULL.

2.right join
sql语句如下:
select * from A
right join B
on A.aID = B.bID
结果如下:
aID  aNum   bID   bName
1   a20050111 1    2006032401
2   a20050112 2    2006032402
3   a20050113 3    2006032403
4   a20050114 4    2006032404
NULL NULL    8    2006032408
(所影响的行数为 5 行)
结果说明:
仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.

3.inner join
sql语句如下:
select * from A
innerjoin B
on A.aID = B.bID
结果如下:
aID aNum     bID     bName
1  a20050111    1     2006032401
2  a20050112    2     2006032402
3  a20050113    3     2006032403
4  a20050114    4     2006032404
结果说明:
很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.

5、某个条件是否存在数据库表
select * from 表名 这个是查询表的所有记录,返回的是记录。
select count() from 表名 这个是查询表的所有记录数,返回的是数值。
PARAMETERS:p_ebeln TYPE ekko-ebeln.
SELECT COUNT(
)
FROM ekko
WHERE ebeln = p_ebeln.
IF sy-subrc = 0.
WRITE: ‘存在’.
ELSE.
WRITE:‘不存在’.
ENDIF.

6、若是当前内表已存在有值,需要查数据库的插入当前内表,则用下列关键字、
SELECT matnr charg APPENDING TABLE lt_charg
FROM mch1 FOR ALL ENTRIES IN gt_body_9002
WHERE matnr = gt_body_9002-zgskh AND charg = gt_body_9002-charg.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值