ABAP SQL 截取字段值、去掉前导零连表匹配查询
應(yīng)用場景:A表a字段取值后面四位與B表b字段進(jìn)行匹配連表,假設(shè)要把工廠作為供應(yīng)商查詢。
方法有兩種:
1.截取法,知道數(shù)據(jù)的固定位數(shù)。
官方解釋:SUBSTRING( arg, pos, len ) ,Substring arg from the position pos with length len. pos and len must be specified so that the substring is within arg.
翻譯:長度為len的位置pos的子字符串a(chǎn)rg。Pos和len必須指定,以便子字符串在arg內(nèi)。
2.去零法,位數(shù)不固定。
官方解釋: LTRIM( arg, char ), String with the content of arg in which all trailing blanks and leading characters are removed that match the character in char. A blank in char is significant.
翻譯:內(nèi)容為arg的字符串,刪除所有與char中字符匹配的尾隨空格和前導(dǎo)字符。char中的空白是重要的。
截取法源代碼
"工廠連接為供應(yīng)商 SELECTmarc~werks,marc~matnr,l~lifnrFROM marc "substring 供應(yīng)商號 第七位開始取值4位 與 工廠匹配LEFT JOIN lfa1 AS l ON SUBSTRING( l~lifnr,7,4 ) EQ marc~werks WHERE marc~werks = '7000'INTO TABLE @DATA(lt_alv)UP TO 10 ROWS. IF sy-subrc = 0.cl_demo_output=>display( lt_alv ). ENDIF.截取法結(jié)果圖
工廠與供應(yīng)商的后四位進(jìn)行匹配連表結(jié)果。
除了7000供應(yīng)商還有其他包含7000的供應(yīng)商也出來了。
去零法源代碼
SELECTmarc~werks,marc~matnr,l~lifnrFROM marc "LTRIM 供應(yīng)商號 前導(dǎo)零去掉,與工廠匹配LEFT JOIN lfa1 AS l ON ltrim( l~lifnr, '0' ) EQ marc~werks WHERE marc~werks = '7000'INTO TABLE @DATA(lt_LTRIM)UP TO 10 ROWS. IF sy-subrc = 0.cl_demo_output=>display( lt_LTRIM ). ENDIF.去零法結(jié)果圖
只取值的到7000的供應(yīng)商。
注意點
這兩種方法,都有相對應(yīng)的使用場景,請靈活使用。
今天的分享到這里
分享使我快樂,我是寒武青鋒。
總結(jié)
以上是生活随笔為你收集整理的ABAP SQL 截取字段值、去掉前导零连表匹配查询的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android美图秀秀--基础
- 下一篇: 基于springboot+vue的超市进