日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ABAP--关于重复行的处理

發布時間:2025/3/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ABAP--关于重复行的处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1??? 定義選擇的結果選擇多行中的所有數據要從數據庫表中讀取所有列和多行,請按如下方式在循環中使用 SELECT語句。

語法SELECT[DISTINCT]*................ENDSELECT.DISTINCT選項將自動的去掉重復的行。

?????? 如果至少讀取了一行,系統字段SY-SUBRC就返回0。

?????? 如果沒有讀取,系統字段SY-SUBRC就返回4。

系統字段SY-DBCNT給讀取的行計數。每執行一次SELECT語句,SY-DBCNT都加1。

?

選擇單行中的所有數據語法SELECTSINGLE[FORUPDATE]*.......WHERE<condition>......可以使用FORUPDATE選項鎖定在數據庫表中選定的行。選擇并處理指定列中數據語法SELECT[SINGLE[FORUPDATE]][DISTINCT]<s1><s2> 如果指定了SINGLE選項,選擇的結果將由一單行的列<a1><a2>...組成。語法SELECT[SINGLE[FORUPDATE]][DISTINCT](<itab>).總計表達式使用總計表達式,可從數據庫表的列<a>中摘錄特征數據。

?????? 有效的總計表達式是:_MAX:返回列<a>的最大值

????????????????????????????????????????? _MIN:返回列<a>的最小值

????????????????????????????????????????? _AVG:返回列<a>的平均值

????????????????????????????????????????? _SUM:返回列<a>的總計

????????????????????????????????????????? _COUNT:按下列方式給值或行計數:

????????????????????????????????????????? -COUNT(DISTINCT<a>)返回列<a>的不同值的個數。-COUNT(*)返回選定行的總數。

在括號和參數之間必須包含空格。算術操作符AVG和SUM只能對數字字段進行操作。

SELECT子句中有一個列表時,可在INTO子句中將列表<F1>,<F2>,...用作參數:SELECT<a1><a2>....INTO(<F1>,<F2>,...).

?

2??? 指定將讀取的數據庫表在程序中指定數據庫表名語法FROM<dbtab>[CLIENTSPECIFIED][BYPASSINGBUFFER][UPTO<n>ROWS] 數據庫表或視圖<dbtab>必須對ABAP/4詞典有效,并且必須在ABAP/4程序中包含相應的TRABLES語句。

要關閉自動集團處理,請使用CLIENTSPECIFIED選項。BYPASSINGBUFFER選項使得不用讀取SAP表緩沖區就可直接讀取數據庫在運行時指定數據庫表的名稱語法 .FROM(<dbtabname>)[CLIENTSPECIFIED][BYPASSINGBUFFER][UPTO<n>ROWS]..INTO<target>.....該格式的FROM子句只能與INTO子句一起使用

?

3??? 為選定數據指定目標區4.1將數據讀到工作區中語法SELECT...INTO<wa>............必須為工作區<wa>聲明一個至少與將讀取的行一樣大的數據對象。4.2將數據讀到內表中語法SELECT.....INTOTABLE<itab>.在該情況下,SELECT并不啟動循環,并且不允許使用ENDSELECT語句。如果內表<itab>不是空的,那么,SELECT語句將用讀取的數據覆蓋其中的內容。如果需要將所選行按已預定義大小的包的形式讀到內表中語法SELECT*.....INTOTABLE<itab>PACKAGESIZE<n>.....該語句打開一個循環。必須使用ENDSELECT語句結束該循環。對于讀取的每個包含<n>行的包,系統都將執行一次循環。如果<n>小于或等于零,將出現運行時間錯誤。為了避免覆蓋內表中的內容,可將所選行附加到此表中。

語法:

SELECT.....APPENDINGTABLE<itab>.....4.3逐個組件地讀取數據語法對于將數據讀到工作區中:SELECT...INTOCORRESPONDINGFIELDSOF<wa>........對于將數據讀到內表中:SELECT...INTOCORRESPONDINGFIELDSOFTABLE<itab>........對于將數據附加到內表中:SELECT...APPENDINGCORRESPONDINGFIELDSOFTABLE<itab>........

4??? 選擇即將讀取的行5.1在程序中為行選擇指定條件語法.....WHERE<condition>........ <f> NOT BETWEEN<g1>AND<g2><f> NOT LIKE<g>[ESCAPE<h>]該條件只能用于字符類型字段。_(下劃線)表示單個字符%(百分號)表示任意字符串,包括空字符串<f> NOT IN(<g1>,......,<gn>)<f>IS[NOT]NULL<f> NOT IN<seltab>5.2運行時指定行選擇的條件語法SELECT......WHERE(<itab>).......只能在僅包含一個類型為C且最大長度為72的字段的內表<itab>中指定條件。表名稱必須在括號中指定,但在括號和名稱之間沒有空格。例外:_使用字母。不能使用變量。_不能將操作符IN與選擇表一起使用。要在運行時指定SELECT語句中的條件的一部分語法SELECT......WHERE<condition>AND(<itab>).......要在運行時指定一系列條件來選擇一定數目的特定行語法SELECT......FORALLENTRIESIN<itab>WHERE<condition>.....注意:數據庫字段與內表中的關聯比較字段必須具有相同的類型和長度。不要在數據庫字段和表字段之間的比較中使用操作符LIKE、BETWEEN和IN。如果使用了WHERE子句的該變式,就不要使用ORDERBY子句。

5??? 給行分組將數據庫表的一組行中的內容組合到單個行中語法SELECT[DISTINCT]<a1><a2>..FROMclauseINTOclauseGROUPBY<F1><F2>....語法SELECT[DISTINCT]<a1><a2>...FROMclauseINTOclauseGROUPBY(<itab>)如果內表<itab>包含有列表<F1><F2>...,那么該語句與上述語句的功能相同。因此,<itab>的行類型必須是C類型,并且最大長度為72的字段。

6??? 指定行的順序7.1按主碼排序語法SELECT*.....ORDERBYPRIMARYKEY.7.2按指定的字段排序語法..ORDERBY<F1>[ASCENDING|DESCENDING]<F2>[ASCENDING|DESCENDING]...語法..ORDERBY(<itab>)


總結

以上是生活随笔為你收集整理的ABAP--关于重复行的处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。