ABAPâ‘£ SQL
目次
・SELECTæ“作
REPORT プãƒã‚°ãƒ©ãƒ å.
  DATA:
    *内部テーブル(テーブル型変数)
    MyTable LIKE TABLE OF SCARR,
    *作æ¥é ˜åŸŸ(行型変数)
    MyRow LIKE SCARR.  
  *テーブル[SCARR]ã®SELECTçµæžœã‚’å†…éƒ¨ãƒ†ãƒ¼ãƒ–ãƒ«ã¸æ ¼ç´ã€‚
  SELECT *
  INTO TABLE MyTable
  FROM SCARR.
  *内部テーブル全件LOOP(作æ¥é ˜åŸŸã¸ãƒ¬ã‚³ãƒ¼ãƒ‰æƒ…å ±ã‚’ã‚³ãƒ”ãƒ¼)
  LOOP AT MyTable INTO MyRow
    WRITE:/ MyRow-フィールドå1, MyRow-フィールドå2.
  ENDLOOP.
  ※VB.NETçš„æ›¸ãæ–¹
  For Each MyRow In MyTable
    Debug.Print( MyRow.Item(“フィールドå1”) & “,” & MyRow.Item(“フィールドå2”) )
  Next MyRow
・INSERTæ“作
  DATA:
   MyRow LIKE SCARR,         *行型変数
   MyCol_Fld1 LIKE SCARR-フィールド1,   *列型変数
   MyCol_Fld2 LIKE SCARR-フィールド2.   *列型変数
  *列ã®å€¤è¨å®š
  MyCol_Fld1 = ‘aa’.
  MyCol_Fld2 = ‘bb’.
  *行ã®å€¤è¨å®š(行â†åˆ—)
  MyRow-フィールド1 = MyCol_Fld1.
  MyRow-フィールド2 = MyCol_Fld2.
  *テーブルã«Insert(テーブルâ†è¡Œ)
  INSERT INTO SCARR VALUES MyRow.
  IF SY-SUBRC = 0.
   MESSAGE ID ‘SABAPDCU’ TYPE ‘S’ NUMBER 888 WITH ‘INSERTæˆåŠŸ’.
  ELSE.
   MESSAGE ID ‘SABAPDCU’ TYPE ‘E’ NUMBER 888 WITH ‘INSERT失敗’.
  ENDIF
・UPDATEæ“作
  UPDATE SCARR
  SET フィールド2 = ‘~’
  WHERE フィールド1 = ‘~’.
ã¾ãŸã¯
  DATA:
   MyRow LIKE SCARR,         *行型変数
   MyCol_Fld1 LIKE SCARR-フィールド1,   *列型変数
   MyCol_Fld2 LIKE SCARR-フィールド2.   *列型変数
  MyCol_Fld1 = ‘aa’.
  MyCol_Fld2 = ‘bb’.
  MyRow-フィールド1 = MyCol_Fld1.
  MyRow-フィールド2 = MyCol_Fld2.
  UPDATE SCARR FROM MyRow.
  ※変更å‰å¾Œã§ã‚ー値ã¯åŒã˜ã§ãªã‘れã°ãªã‚‰ãªã„。
・DELETEæ“作
  DELETE FROM SCARR
  WHERE フィールド1 = ‘~’.
ã¾ãŸã¯
  DATA:
   MyRow LIKE SCARR,         *行型変数
   MyCol_Fld1 LIKE SCARR-フィールド1,   *列型変数
   MyCol_Fld2 LIKE SCARR-フィールド2.   *列型変数
  MyCol_Fld1 = ‘aa’.
  MyCol_Fld2 = ‘bb’.
  MyRow-フィールド1 = MyCol_Fld1.
  MyRow-フィールド2 = MyCol_Fld2.
  DELETE SCARR FROM MyRow.
・上ä½nä»¶å–å¾—
  SELECT *
  FROM SCARR
  INTO TABLE MyTable
  UP TO 100 ROWS
・上ä½1ä»¶å–å¾—
  SELECT SINGLE *
  FROM SCARR
  INTO TABLE MyTable
  ※データãŒå¿…ãšã‚る事ãŒåˆ†ã‹ã£ã¦ã„ã‚‹å ´åˆã«ã¯SINGLEã®æ–¹ãŒæ—©ã„。
   分ã‹ã‚‰ãªã„時ã¯ã€ŒUP TO 1 ROWã€ã‚’用ã„る。
・内部テーブル(テーブル型変数)
  TYPES:
    BEGIN OF TypeId,
      Name TYPE String,
      Old TYPE I,
      Tel TYPE String,
    END OF TypeId.
  DATA MyTable TYPE STANDARD TABLE OF TypeId.
  DATA MyRow  TYPE TypeId.
  *テーブル型ã€è¡Œåž‹ã€åˆ—åž‹ã¯LIKEを用ã„ã‚‹(実在ã®DBã®æ§‹é€ を用ã„ã‚‹å ´åˆ)
  DATA myTable  LIKE TABLE OF テーブルå
  DATA myRow   LIKE テーブルå
  DATA myCol   LIKE テーブルå-フィールドå
・内部テーブルã®SORT
  SORT MyTable ASCENDING By フィールドå1 フィールドå2.
  SORT MyTable DESCENDING By フィールドå1 フィールドå2.
・FOR ALL ENTRIES IN(≒JOIN)
  *内部テーブル(MyType)ã‚’ã‚ーã¨ã—ã¦SCARRã‚’SELECTã™ã‚‹ã€‚
  *ABAPã§ã¯JOINã¯é…ã„らã—ã„。
  SELECT *
  FROM SCARR
  INTO TABLE MyTable
  FOR ALL ENTRIES IN MyType
ãƒ»é¸æŠžãƒ†ãƒ¼ãƒ–ãƒ«
    BEGIN OF LineType,
      ’I’:Inclusive
      ’E’;Exclusive
      SIGN(1)  TYPE C,
      ※「HIGHã€æœªæŒ‡å®šã®æ™‚ã«æŒ‡å®š
      ’EQ’:Equal
      ’NE’:NotEqual
      ’GT’:GreaterThan
      ’LE’:LessEqual
      ’LT’:LessThan
      ’CP’:パターンãŒå«ã¾ã‚Œã‚‹
      ’NP’:パターンãŒå«ã¾ã‚Œãªã„
      OPTION(2) TYPE C,
      LOW    TYPE ~ / LIKE ~,
      HIGH    TYPE ~ / LIKE ~,
    END OF LineType.
  DATA MyRange TYPE RANGE OF テーブルå-フィールド1.
  DATA MyLine LIKE LINE OF MyRange.
  MyLine-SIGN = ‘I’.
  MyLine-OPTION = ‘EQ’.
  MyLine-LOW = ‘AAA’.
  APPEND MyLine TO MyRange.
  SELECT *
  FROM SCARR
  INTO TABLE MyTable
  WHERE CATEGORY IN MyRange.