ƒRƒ“ƒeƒ“ƒcƒtƒŒ[ƒ€‹N“®

“à•”ƒe[ƒuƒ‹‚̃\[ƒg •¶‘‚ð SAP ƒ‰ƒCƒuƒ‰ƒŠƒXƒgƒ‰ƒNƒ`ƒƒ‚É‘g‚Ýž‚Þ

ƒvƒƒOƒ‰ƒ€‚ÅA•W€ƒe[ƒuƒ‹‚Ü‚½‚̓nƒbƒVƒ…ƒe[ƒuƒ‹‚ðƒ\[ƒg‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·Bƒe[ƒuƒ‹‚ðƒe[ƒuƒ‹ƒL[‚Ń\[ƒg‚·‚é‚É‚ÍAˆÈ‰º‚Ì–½—ß‚ðŽg—p‚µ‚Ü‚·B

SORT <itab> [ASCENDING|DESCENDING] [AS TEXT] [STABLE].

‚±‚Ì–½—߂łÍA“à•”ƒe[ƒuƒ‹ <itab> ‚ªƒe[ƒuƒ‹ƒL[‚É‚æ‚Á‚ĸ‡‚Ń\[ƒg‚³‚ê‚Ü‚·B‚±‚Ì–½—ß‚ÍAí‚Ƀe[ƒuƒ‹Ž©‘̂ɓK—p‚³‚êAƒwƒbƒ_s‚ɂ͓K—p‚³‚ê‚Ü‚¹‚ñBƒ\[ƒg‡˜‚ÍA“à•”ƒe[ƒuƒ‹“à‚Ì•W€ƒL[€–ڂ̇˜‚É‚æ‚Á‚ÄŒˆ‚Ü‚è‚Ü‚·BƒfƒtƒHƒ‹ƒgƒL[‚̓e[ƒuƒ‹s‚Ì”ñ”’l€–Ú‚Å\¬‚³‚ê‚Ä‚¨‚èA‚»‚ê‚ç‚Ì€–Ú‚Í‚»‚ê‚炪oŒ»‚·‚釘‚Å•À‚ñ‚Å‚¢‚Ü‚·B

ƒIƒvƒVƒ‡ƒ“ ASCENDING ‚¨‚æ‚Ñ DESCENDING ‚ðŽg—p‚µ‚ÄAƒ\[ƒg‚Ì•ûŒü‚ðŽw’è‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·BƒfƒtƒHƒ‹ƒg‚͸‡‚Å‚·B

ƒ\[ƒgƒL[‚ª‘å‚«‚¢‚Ù‚ÇAƒe[ƒuƒ‹‚̃\[ƒg‚É•K—v‚ÈŽžŠÔ‚ª‘½‚­‚È‚è‚Ü‚·Bƒ\[ƒgƒL[‚É“à•”ƒe[ƒuƒ‹‚ªŠÜ‚Ü‚ê‚Ä‚¢‚éꇂÍAƒ\[ƒgƒvƒƒZƒX‚Í‚©‚È‚è’x‚­‚È‚è‚Ü‚·B

SORT –½—߂Ń\[ƒgƒe[ƒuƒ‹‚ðƒ\[ƒg‚·‚邱‚Ƃ͂ł«‚Ü‚¹‚ñBƒ\[ƒgƒe[ƒuƒ‹‚ÍAí‚ÉŽ©g‚̃\[ƒg‡˜‚É‚æ‚Á‚ÄŽ©“®“I‚ÉXV‚³‚ê‚Ü‚·B“à•”ƒe[ƒuƒ‹‚ªƒ\[ƒgƒe[ƒuƒ‹‚Æ‚µ‚ÄÓI‚É”Fޝ‚Å‚«‚éê‡ASORT –½—ß‚ðŽg—p‚·‚邯\•¶ƒGƒ‰[‚ª”­¶‚µ‚Ü‚·Bƒe[ƒuƒ‹‚ªƒWƒFƒlƒŠƒbƒNƒ\[ƒgƒe[ƒuƒ‹‚Å‚ ‚éꇂÍAƒ\[ƒgƒL[‚ªƒe[ƒuƒ‹ƒL[‚Ìæ“ª‚Ì’Šo‚Æ“¯‚¶‚łȂ¢‚Æ‚«‚âA~‡‚Ń\[ƒg‚·‚é‚© AS TEXT ƒIƒvƒVƒ‡ƒ“‚ðŽg—p‚µ‚½‚Æ‚«‚ÉASORT –½—߂ɂæ‚Á‚ÄŽÀsŽžƒGƒ‰[‚ª”­¶‚µ‚Ü‚·B‚‚܂èASORT –½—ß‚ÍA“à•”ƒ\[ƒg‡˜‚Ɉᔽ‚µ‚Ä‚¢‚È‚¢ê‡‚ÉŒÀ‚Á‚ÄAƒWƒFƒlƒŠƒbƒN“à•”ƒe[ƒuƒ‹‚ɑ΂µ‚Ă̂ݎg—p‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B

•ʂ̃\[ƒgƒL[‚É‚æ‚éƒ\[ƒg

\‘¢‰»‚³‚ꂽsƒf[ƒ^Œ^‚ðŽ‚Â“à•”ƒe[ƒuƒ‹‚ð•ʂ̃L[‚Ń\[ƒg‚µ‚½‚¢ê‡AˆÈ‰º‚̂悤‚É SORT –½—߂ł»‚̃L[‚ðŽw’è‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B

SORT <itab> [ASCENDING|DESCENDING] [AS TEXT] [STABLE]
             BY <f1> [ASCENDING|DESCENDING] [AS TEXT]
                ...

                 <fn> [ASCENDING|DESCENDING] [AS TEXT].

ƒe[ƒuƒ‹‚ÍAƒe[ƒuƒ‹ƒL[‚É‚æ‚Á‚Ăł͂Ȃ­AŽw’肵‚½ƒRƒ“ƒ|[ƒlƒ“ƒg <f1> ... <fn> ‚É‚æ‚Á‚ă\[ƒg‚³‚ê‚Ü‚·Bƒ\[ƒg€–Ú‚Ì”‚ÍA250 ‚ɧŒÀ‚³‚ê‚Ü‚·Bƒ\[ƒg‡˜‚ÍA€–Ú <f i >. ‚̇˜‚É‚æ‚Á‚ÄŒˆ‚Ü‚è‚Ü‚·BBY ‚Ì‘O‚ÉŽw’肵‚½ƒ\[ƒg‡˜‚Í‚·‚ׂẰ–Ú‚É“K—p‚³‚ê‚Ü‚·B€–Ú‚ÌŒã‚ë‚̃\[ƒg‡˜‚ÍAƒe[ƒuƒ‹‚Ì—ñ‚ɂ̂ݓK—p‚³‚ê‚Ü‚·B

<fi> ‚Ì‘ã‚í‚è‚É(<f>) ‚ðŽw’肵‚ÄAƒ\[ƒg€–Ú‚ð“®“I‚ÉŽw’è‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B€–Ú <f> ‚Ì“à—e‚É‚æ‚Á‚ÄAƒ\[ƒg€–Ú‚Ì–¼‘O‚ªŒˆ’肳‚ê‚Ü‚·B–½—߂̎ÀsŽž‚É <f> ‚ª‹ó‚Å‚ ‚éꇂÍA‚»‚Ì€–ڂ̓\[ƒg‚Å–³Ž‹‚³‚ê‚Ü‚·B€–Ú‚É–³Œø‚ȃRƒ“ƒ|[ƒlƒ“ƒg–¼‚ªŠÜ‚Ü‚ê‚Ä‚¢‚éꇂÍAŽÀsŽžƒGƒ‰[‚ª”­¶‚µ‚Ü‚·B

ƒAƒ‹ƒtƒ@ƒxƒbƒg‡‚̃\[ƒg

ASCENDING ƒIƒvƒVƒ‡ƒ“‚â DESCENDING ƒIƒvƒVƒ‡ƒ“‚̂ق©‚ÉAƒ\[ƒg‘S‘̂܂½‚ÍŠeƒ\[ƒg€–Ú‚ðƒAƒ‹ƒtƒ@ƒxƒbƒg‡‚É‚·‚邿‚¤‚ÉŽw’è‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B

SORT <itab> ...AS TEXT ... .

‚±‚̃IƒvƒVƒ‡ƒ“‚ÍA•¶Žš—ñ‚̃\[ƒg•û–@‚ɉe‹¿‚µ‚Ü‚·BƒIƒvƒVƒ‡ƒ“‚ðŽg—p‚µ‚È‚¢‚ÆA•¶Žš—ñ‚̓n[ƒhƒEƒFƒAƒvƒ‰ƒbƒgƒtƒH[ƒ€‚É‚æ‚Á‚ÄŽw’肳‚ꂽ‡˜‚É]‚Á‚ă\[ƒg‚³‚ê‚Ü‚·BƒIƒvƒVƒ‡ƒ“ AS TEXT ‚ðŽg—p‚·‚邯A•¶Žš€–Ú‚ÍŒ»Ý‚̃eƒLƒXƒgŠÂ‹«‚É]‚Á‚ăAƒ‹ƒtƒ@ƒxƒbƒg‡‚Ƀ\[ƒg‚³‚ê‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Å‚ÍAƒeƒLƒXƒgŠÂ‹«‚̓†[ƒUƒ}ƒXƒ^ƒŒƒR[ƒh‚Éݒ肳‚ê‚Ä‚¢‚Ü‚·B‚½‚¾‚µAˆÈ‰º‚Ì–½—ß‚ðŽg—p‚µ‚ăeƒLƒXƒgŠÂ‹«‚𖾎¦“I‚ÉÝ’è‚·‚邱‚Æ‚à‚Å‚«‚Ü‚·B

SET LOCALE LANGUAGE

AS TEXT ƒIƒvƒVƒ‡ƒ“‚ðŽg—p‚·‚邯A•¶Žš—ñ‚ðƒ\[ƒg‰Â”\‚È‘Ž®‚ɕϊ·‚µ‚È‚­‚Ä‚àς݂܂·B‚±‚̂悤‚ȕϊ·‚ÍAˆÈ‰º‚Ìꇂɂ̂ݕK—v‚Å‚·B

·        “à•”ƒe[ƒuƒ‹‚ðƒAƒ‹ƒtƒ@ƒxƒbƒg‡‚Ń\[ƒg‚µ‚Ä‚©‚çƒoƒCƒiƒŠŒŸõ‚ðŽg—p‚·‚éê‡

·        •¶Žš€–Ú‚ðƒL[‚Æ‚µ‚ÄŽg—p‚µ‚Ä“à•”ƒe[ƒuƒ‹‚ð•¡”‰ñă\[ƒg‚·‚éê‡ ( ‚±‚̂悤‚É‚·‚邯A•ÏŠ·‚ª1 ‰ñ‚µ‚©•K—v‚È‚­‚Ȃ邽‚ß)

·        ƒvƒƒOƒ‰ƒ€‚Ńf[ƒ^ƒx[ƒXƒe[ƒuƒ‹—p‚̃Aƒ‹ƒtƒ@ƒxƒbƒg‡‚Ìõˆø‚ð쬂·‚éê‡

AS TEXT ƒIƒvƒVƒ‡ƒ“‚ðƒ\[ƒg‘S‘̂ɓK—p‚µ‚½ê‡‚ÍAC Œ^‚̃\[ƒg€–ڂɂ̂݉e‹¿‚µ‚Ü‚·BAS TEXT ƒIƒvƒVƒ‡ƒ“‚ð’Pˆê‚̃\[ƒg€–Ú‚É“K—p‚·‚éꇂÍA‚»‚̃\[ƒg€–Ú‚Í C Œ^‚łȂ¯‚ê‚΂Ȃè‚Ü‚¹‚ñB

ˆÀ’肵‚½ƒ\[ƒg

ƒIƒvƒVƒ‡ƒ“

SORT <itab> ... STABLE.

‚ðŽg—p‚·‚邯AˆÀ’肵‚½ƒ\[ƒg‚ðŽÀs‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B‚‚܂èAƒ\[ƒg‚É‚æ‚Á‚ĕω»‚µ‚È‚¢s‚Ì‘Š‘Î‡˜‚Í•ÏX‚³‚ê‚Ü‚¹‚ñBSTABLE ƒIƒvƒVƒ‡ƒ“‚ðŽg—p‚µ‚È‚¢ê‡‚ÍAƒ\[ƒg‡˜‚͕ێ‚³‚ê‚Ü‚¹‚ñBƒe[ƒuƒ‹‚𓯈ê‚̃L[‚ʼn½‰ñ‚àƒ\[ƒg‚µ‚½ê‡Aƒe[ƒuƒ‹ƒGƒ“ƒgƒŠ‚̇˜‚̓\[ƒg‚²‚Ƃɕω»‚µ‚Ü‚·B‚½‚¾‚µAˆÀ’肵‚½ƒ\[ƒg‚ÍAˆÀ’肵‚È‚¢ƒ\[ƒg‚æ‚è‚àŽžŠÔ‚ª‚©‚©‚è‚Ü‚·B

—á

 —á

DATA: BEGIN OF LINE,
        LAND(3)  TYPE C,
        NAME(10) TYPE C,
        AGE      TYPE I,
        WEIGHT   TYPE P DECIMALS 2,
      END OF LINE.

DATA ITAB LIKE STANDARD TABLE OF LINE WITH NON-UNIQUE KEY LAND.

LINE-LAND = 'G'.   LINE-NAME   = 'Hans'.
LINE-AGE  = 20.    LINE-WEIGHT = '80.00'.
APPEND LINE TO ITAB.

LINE-LAND = 'USA'.LINE-NAME   = 'Nancy'.
LINE-AGE  = 35.    LINE-WEIGHT = '45.00'.
APPEND LINE TO ITAB.

LINE-LAND = 'USA'.LINE-NAME   = 'Howard'.
LINE-AGE  = 40.    LINE-WEIGHT = '95.00'.
APPEND LINE TO ITAB.

LINE-LAND = 'GB'.  LINE-NAME   = 'Jenny'.
LINE-AGE  = 18.    LINE-WEIGHT = '50.00'.
APPEND LINE TO ITAB.

LINE-LAND = 'F'.   LINE-NAME   = 'Michele'.
LINE-AGE  = 30.    LINE-WEIGHT = '60.00'.
APPEND LINE TO ITAB.

LINE-LAND = 'G'.   LINE-NAME   = 'Karl'.
LINE-AGE  = 60.    LINE-WEIGHT = '75.00'.
APPEND LINE TO ITAB.

PERFORM LOOP_AT_ITAB.

SORT ITAB.
PERFORM LOOP_AT_ITAB.

SORT ITAB.
PERFORM LOOP_AT_ITAB.

SORT ITAB STABLE.
PERFORM LOOP_AT_ITAB.

SORT ITAB DESCENDING BY LAND WEIGHT ASCENDING.
PERFORM LOOP_AT_ITAB.

FORM LOOP_AT_ITAB.
   LOOP AT ITAB INTO LINE.
     WRITE: / LINE-LAND, LINE-NAME, LINE-AGE, LINE-WEIGHT.
   ENDLOOP.
   SKIP.
ENDFORM.

o—͈͂ȉº‚̂悤‚ɂȂè‚Ü‚·B

G   Hans               20         80.00
USA Nancy              35         45.00
USA Howard             40         95.00
GB  Jenny              18         50.00
F   Michele            30         60.00
G   Karl               60         75.00

F   Michele            30         60.00
G   Hans               20         80.00
G   Karl               60         75.00
GB  Jenny              18         50.00
USA Howard             40         95.00
USA Nancy              35         45.00

F   Michele            30         60.00
G   Karl               60         75.00
G   Hans               20         80.00
GB  Jenny              18         50.00
USA Howard             40         95.00
USA Nancy              35         45.00

F   Michele            30         60.00
G   Karl               60         75.00
G   Hans               20         80.00
GB  Jenny              18         50.00
USA Howard             40         95.00
USA Nancy              35         45.00

USA Nancy              35         45.00
USA Howard             40         95.00
GB  Jenny              18         50.00
G   Karl               60         75.00
G   Hans               20         80.00
F   Michele            30         60.00

‚±‚̃vƒƒOƒ‰ƒ€‚Å‚ÍA•W€ƒe[ƒuƒ‹‚ª 1 ‚‚̃L[€–Ú‚Å 4 ‰ñƒ\[ƒg‚³‚ê‚Ü‚·B‚Ü‚¸ASTABLE ƒIƒvƒVƒ‡ƒ“‚ðŽg—p‚µ‚È‚¢‚ÅAƒL[€–Ú (LAND) ‚Å 2 ‰ñƒ\[ƒg‚³‚ê‚Ü‚·Bƒ\[ƒg‚͈À’肵‚Ä‚¢‚Ü‚¹‚ñB‘æ 2 s‚Æ‘æ 3 s‚̇˜‚ª•ω»‚µ‚Ä‚¢‚Ü‚·BŽŸ‚ÉASTABLE ƒIƒvƒVƒ‡ƒ“‚ðŽg—p‚µ‚Ä“¯‚¶ƒ\[ƒg‚ªŽÀs‚³‚ê‚Ü‚·Bƒ\[ƒg‚͈À’肵‚Ä‚¢‚Ü‚·Bs‚Í“¯‚¶‡˜‚ɕۂ½‚ê‚Ä‚¢‚Ü‚·BŽŸ‚ÉALAND ‚¨‚æ‚Ñ WEIGHT ‚Æ‚µ‚Ä’è‹`‚³‚ꂽƒ\[ƒgƒL[‚Ńe[ƒuƒ‹‚ªƒ\[ƒg‚³‚ê‚Ü‚·Bˆê”ʂ̃\[ƒg‡˜‚Í~‡‚Æ‚µ‚Ä’è‹`‚³‚ê‚Ü‚·‚ªAWEIGHT ‚Ìê‡Aƒ\[ƒg‡˜‚͸‡‚Æ‚µ‚Ä’è‹`‚³‚ê‚Ü‚·B

 —á

DATA: BEGIN OF LINE,
        TEXT(6),
        XTEXT(160) TYPE X,
      END OF LINE.

DATA ITAB LIKE HASHED TABLE OF LINE WITH UNIQUE KEY TEXT.

LINE-TEXT = 'Muller'.
CONVERT TEXT LINE-TEXT INTO SORTABLE CODE LINE-XTEXT.
INSERT LINE INTO TABLE ITAB.

LINE-TEXT = 'Möller'.
CONVERT TEXT LINE-TEXT INTO SORTABLE CODE LINE-XTEXT.
INSERT LINE INTO TABLE ITAB.

LINE-TEXT = 'Moller'.
CONVERT TEXT LINE-TEXT INTO SORTABLE CODE LINE-XTEXT.
INSERT LINE INTO TABLE ITAB.

LINE-TEXT = 'Miller'.
CONVERT TEXT LINE-TEXT INTO SORTABLE CODE LINE-XTEXT.
INSERT LINE INTO TABLE ITAB.

SORT ITAB.
PERFORM LOOP_AT_ITAB.

SORT ITAB BY XTEXT.
PERFORM LOOP_AT_ITAB.

SORT ITAB AS TEXT.
PERFORM LOOP_AT_ITAB.

FORM LOOP_AT_ITAB.
  LOOP AT ITAB INTO LINE.
    WRITE / LINE-TEXT.
  ENDLOOP.
  SKIP.
ENDFORM.

‚±‚Ì—á‚ÍA•¶Žš€–ڂ̃Aƒ‹ƒtƒ@ƒxƒbƒg‡‚̃\[ƒg‚ðŽ¦‚µ‚Ä‚¢‚Ü‚·B“à•”ƒe[ƒuƒ‹ ITAB ‚É‚ÍAƒAƒ‹ƒtƒ@ƒxƒbƒg‡‚Ń\[ƒg‚Å‚«‚éA•¶Žš€–Ú‚ðŽ‚Â—ñ‚Æ‚»‚ê‚ɑΉž‚·‚éƒoƒCƒiƒŠƒR[ƒh‚ðŽ‚Â—ñ‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·BƒoƒCƒiƒŠƒR[ƒh‚ÍACONVERT –½—ß‚ðŽg—p‚µ‚Ä쬂³‚ê‚Ü‚· ( Úׂɂ‚¢‚Ä‚ÍAƒ\[ƒg‰Â”\‚È‘Ž®‚ւ̕ϊ·‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢) Bƒe[ƒuƒ‹‚Í 3 ‰ñƒ\[ƒg‚³‚ê‚Ü‚·B1 ‰ñ–Ú‚ÍATEXT €–ڂŃoƒCƒiƒŠƒR[ƒh‡‚Ƀ\[ƒg‚³‚ê‚Ü‚·B2 ‰ñ–Ú‚ÍAXTEXT €–ڂŃoƒCƒiƒŠƒR[ƒh‡‚Ƀ\[ƒg‚³‚ê‚Ü‚·B3 ‰ñ–Ú‚ÍATEXT €–ڂŃAƒ‹ƒtƒ@ƒxƒbƒg‡‚Ƀ\[ƒg‚³‚ê‚Ü‚·B‰pŒê‚ł͓K؂ȗႪ‚È‚¢‚Ì‚ÅAƒhƒCƒcŒê‚̃eƒLƒXƒgŠÂ‹«‚ÌꇂÌo—Í‚ðˆÈ‰º‚ÉŽ¦‚µ‚Ü‚·B

Miller
Moller
Muller
Möller

Miller
Moller
Möller
Muller

Miller
Moller
Möller
Muller

1 ‰ñ–ڂ̃\[ƒg‚Ì‚ ‚ÆA'Möller' ‚ª 'Muller' ‚ÌŒã‚ë‚ɂȂÁ‚Ä‚¢‚Ü‚·B‚±‚ê‚ÍA•¶Žš 'ö' ‚Ì“à•”ƒR[ƒh‚ª 'u' ‚Ì“à•”ƒR[ƒh‚ÌŒã‚ë‚É‚ ‚邽‚߂ł·B2 ‰ñ–Ú‚Æ 3 ‰ñ–ڂ̃\[ƒgŒ‹‰Ê‚̓Aƒ‹ƒtƒ@ƒxƒbƒg‡‚ɂȂÁ‚Ä‚¢‚Ü‚·BXTEXT ‚É‚æ‚éƒoƒCƒiƒŠƒ\[ƒg‚ÌŒ‹‰Ê‚ÍA€–Ú TEXT ‚É‚æ‚éƒAƒ‹ƒtƒ@ƒxƒbƒg‡‚̃\[ƒg‚Æ“¯‚¶‚ɂȂè‚Ü‚·B

 

 

 

 

ƒRƒ“ƒeƒ“ƒcƒtƒŒ[ƒ€I—¹