[SAP ABAP] 字符串操作

30 篇文章 1 订阅
本文详细介绍了如何在SQL中使用各种函数进行字符串操作,包括计算长度、拼接字符串(CONCATENATE()和&&)、替换、拆分、截取、查找(SEARCH)、大小写转换、移位以及清空字符串等内容,为数据库开发者提供实用的字符串处理参考。
摘要由CSDN通过智能技术生成

1.创建字符串

上面的代码产生以下输出:

2.计算字符串长度

STRLEN()函数用于返回字符串中包含的字符数(计算字符串的长度)

上面的代码产生以下输出:

提示Tips:使用STRLEN()函数时,注意该函数括号内要空格,不然语法会报错

3.字符串拼接

我们可以使用CONCATENATE()函数对字符串进行拼接操作

语法格式

CONCATENATE f1...fn INTO g [SEPARATED BY h].

SEPARATED BY表示在连接字符串中加入分隔符号

上面的代码产生以下输出:

CONCATENATE()函数只能拼接字符型字段 

使用CONCATENATE拼接字符串时默认会去除结尾的空字符,若需保留空字符则需要在结尾使用RESPECTING BLANKS关键字进行声明

上面的代码产生以下输出:

我们也可以使用&&进行字符串拼接

上面的代码产生以下输出:

4.去除字符串多余空格

语法格式

CONDENSE c <NO-GAPS>.

CONDENSE语句用于删除字段之间的空格,但只保留1个字符的空格

NO-GAPS是CONDENSE语句的可选项,用于删除所有空格

上面的代码产生以下输出:

提示Tips: 系统会自动去除字符串后面的空格

上面的代码产生以下输出:

5.字符串替换

语法格式

REPLACE <str1> WITH <str2> INTO <c> [LENGTH <l>].

将字符串<c>中的<str1>用<str2>进行替换

上面的代码产生以下输出:

上面的代码产生以下输出: 

6.字符串拆分

语法格式

SPLIT <c> AT <del> INTO <c1> ... <cn>.

在字符串<c>搜索分界字符<del>,并将分界字符之前和之后的部分放到目标字段<c1> ... <cn>中 

上面的代码产生以下输出:

上面的代码产生以下输出:

7.字符串截取

使用字符串+数字(数字)的方式可用于截取部分字符串

其中第一个数字表示起始位置,括号中的数字表示截取的长度

例如:+0(4)就表示从左往右截取从第一个字符位置开始的4个字符

上面的代码产生以下输出:

上面的代码产生以下输出:

8.字符串查找

语法格式1

SEARCH f FOR g.

表示从字符串f中搜索字符串g,查询的结果会回存至SY-SUBRC和SY-FDPOS两个系统变量中

SY-SUBRC的返回值为0时,表示查找成功;返回值为4时,表示查找失败

② 某段字符在字符串中的具体位置保存在系统变量SY-FDPOS

③ 若某段字符能够在字符串中被找到,则SY-SUBRC为0,SY-FDPOS存储该段字符在字符串中开始的位置; 若找不到,则SY-SUBRC为4,SY-FDPOS为0

上面的代码产生以下输出:

语法格式2

* 从指定字符串f中按顺序搜索相匹配字符串g
SEARCH f FOR g ABBREVIATED.

* 从指定字符串f中的第n1个字符开始搜索匹配字符串g
SEARCH f FOR g STARTING AT n1.

* 从指定字符串f中搜索匹配相关字符串g,直到搜索到字符串f的第n2个字符为止
SEARCH f FOR g ENDING AT n2.

* 从指定字符串f中模糊搜索相匹配字符串g
SEARCH f FOR g AND MARK.

上面的代码产生以下输出:

对于一些特殊符号,如*@.等,需要在其两边加上句点.作为修饰 

上面的代码产生以下输出:

9.字符串大小写转换

使用TRANSLATE关键字进行字符串大小写转换操作

语法格式

* 大写
TRANSLATE <c> TO UPPER CASE.

* 小写
TRANSLATE <c> TO LOWER CASE.

上面的代码产生以下输出:

上面的代码产生以下输出:

10.字符串移位

语法格式1

SHIFT <c> [BY <n> PLACES] [<modes>].

表示将字符串整体进行位移

<modes>取值有以下3种类型:

① 空白(缺省),字符串往左移一位

② LEFT,字符串往左移n位

③ RIGHT,字符串往右移n位

上面的代码产生以下输出:

上面的代码产生以下输出:

语法格式2

SHIFT c UP TO c1.

表示指定字符串c从子串c1进行位移,执行结果返回系统参数SY-SUBRC,执行成功返回0,不匹配则返回4

上面的代码产生以下输出:

语法格式3

* 移除字符串c左边的子字符串c1
SHIFT c LEFT DELETING LEADING c1.

* 移除字符串c右边的子字符串c1
SHIFT c RIGHT DELETING TRAILING c1.

执行结果返回系统参数SY-SUBRC,执行成功返回0,不匹配则返回4

上面的代码产生以下输出:

上面的代码产生以下输出:

11.字符串清空

上面的代码产生以下输出:

  • 12
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值