赛跑网

 找回密码
 注册

QQ登录

只需一步,快速开始

快捷登录

查看: 10225|回复: 45

[P2J24]ABAP的SQL查询语句之一般用法

  [复制链接]
发表于 2010-11-15 09:34:16 | 显示全部楼层 |阅读模式
SQL语句是指程序从数据库把数据取出来的语句。每种语言都有SQL语句。下面我们来看看ABAP里面SQL语句.其基本构成要素如下:
SELECT ・・・
FROM ・・・
INTO ・・・
WHERE ・・・


SELECT是指把哪些字段取出来,FROM是指从哪个表里取,INTO是指取出来放到哪里,WHERE是指取出来的条件。下面我们来看看具体的写法
1,关于取出项目
a,指定项目
SELECT EBELN
            EBELP

b,取出所有项目
SELECT *
是指把指定表的所有字段全取出来

2,关于取出表
FROM EKBE
指定的数据库表EKBE,可用SE16查看表中内容

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查询语句之结合

最近访客

  • tbb1177
    2024-01-16
  • uno
    2022-04-26
  • austin
    2022-03-23
  • zxl
    2021-07-16
  • 77154121
    2021-07-13
  • chenc880
    2021-07-03
  • wangxiao
    2021-01-18




上一篇:[P2J23]ABAP内部表处理之其他
下一篇:[P2J25]ABAP的SQL查询语句之结合
本楼点评(0) 收起
发表于 2011-2-17 21:21:40 | 显示全部楼层
写的很好蛮详细的
本楼点评(0) 收起
发表于 2011-3-24 13:15:55 | 显示全部楼层
谢谢  分享
本楼点评(0) 收起
发表于 2011-4-8 21:55:50 | 显示全部楼层
凡走过必留下痕迹
本楼点评(0) 收起
发表于 2011-4-28 16:50:31 | 显示全部楼层
學習中。。。。
本楼点评(0) 收起
发表于 2011-5-12 17:45:42 | 显示全部楼层
学习中...还差一个字
本楼点评(0) 收起
发表于 2011-5-15 23:24:00 | 显示全部楼层
谢谢老师。学习中······
本楼点评(0) 收起
发表于 2011-6-1 09:58:19 | 显示全部楼层
看一下多条记录的取法
本楼点评(0) 收起
发表于 2011-6-5 15:09:37 | 显示全部楼层
good good study
本楼点评(0) 收起
发表于 2011-6-6 00:14:58 | 显示全部楼层
2001-2010 所有的未付款总额
本楼点评(0) 收起
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|联系我们|赛跑网 ( QQ:108519493QQfsq

GMT+8, 2024-4-30 10:08 , Processed in 0.264090 second(s), 64 queries .

Powered by 91SAP X3.4

© 2001-2023 91sap Team.

快速回复 返回顶部 返回列表