常用的字符串操作主要有查找、替换、连接、去除固定字符等,以下是常见的一些字符串函数
函数 | 功能 |
SCAN | 根据名称查找子串 |
SUBSTR | 根据位置查找/替换子串 |
LEFT/RIGHT | 字符串处理:空格处理 |
TRIM | 字符串处理:空格去除 |
CATX和|| | 字符串连接 |
INDEX/FIND | 返回子串位置 |
UPCASE/LOWCASE/PROPCASE | 大小写转换 |
TRANWRD | 根据名称替换子串 |
COMPRESS | 从字符串删除给定的字符 |
COMPBL | 字符串处理:空格去除 |
查找并返回字符串中的第n个单词,调用方法SCAN(string, count <, character-list <, modifier>>) ,前三个参数分别表示待查找的语句,n,分割符。 第4个modifier可取的值比较多,比如i表示忽略大小写。更多的说明需要参考帮忙文档
说明:
如果n超过单词个数,返回空白
如果n为负值,则从右往左查找
如果不指定分割符,则默认的分割符有好多,包括blank ! $ % & ( ) * + , - . / ; < ^ |
如果指定的分割符只有一个,那就是这个分割符
如果指定的分割符有多个,那分割符是其中任意一个。
作用1: 查找返回字符串中第n位字符开始的,长度为length的子串,方法<variable=>SUBSTR(string, position <, length>),如果省略了length参数,则返回第n位开始的所有字符。
作用2:子字符串替换,如果SUBSTR在赋值运算符的左边,那就是要替换原字符串中的子串,使用方法为SUBSTR(variable, position <, length>)=characters-to-replace, 例如SUBSTR(Name,1,4)='miao';
LEFT将字符串开头的空白挪到最右边,即左对齐。 RIGHT将字符串结尾的空白挪到最左边。这两个函数都只需要一个参数,使用方法:LEFT(argument) 和 RIGHT(argument)。(注:挪完之后的字符串长度不变)
可以使用||或者!!或者¦¦作为连接符来连接字符串
去掉字符串尾部的空白,如果想要去掉所有的空白,可以结合LEFT使用,比如trim(left(str1)),这种情况下left函数先将str1开头的空白挪到尾部,然后trim函数去掉了尾部的空白。
字符串连接,去掉所有字符串开头和结尾的空白,并使用给定的分割符连接它们,用法 CATX(delimiter, item-1 <, ... item-n>)。它可以代替trim+left+||的组合,比如 trim(left(str1)) || ' ,' || trim(left(str2)) || ' ,' || trim(left(str3)) 就可以使用catx(' ,', str1, str2, str3)来代替。
查找并返回子串第一次出现的位置,如果未出现,则返回0. 使用方法:INDEX(source, excerpt)。这个不但可以查找子串位置,更常用的场景是判断是否包含了子串,比如 where index(str, 'qingsong') > 0; 表示只要包含了'qingsong'子串的。
查找并返回子串第一次出现的位置,语法为FIND(string, substring <, modifier(s)> <, start-position>)
这个和INDEX类似,不过多了两个参数,modifier是一个字符常量,比如i或者I表示查找的时候忽略大小写, t/T表示trim掉结尾的空白。 start-position表示从哪个位置开始找。
大小写转换,前者将字符串中的字符转换为大写,后者转换为小写
将字符串转换为适当的大小写(所有单词转换为小写,然后每个单词的第一个字符转换为大写),用法 PROPCASE(argument <, delimiters>)
替换或者去掉一个字符串中所有出现的某个子串,用法 TRANWRD(source, target, replacement)
其中source为原串,target为待替换的子串,replacement为替换后的子串。
将两个或者两个以上的空格压缩为一个空格,是COMPRESS BLANK的简称,用法COMPBL(source)
去除字符串中的某些字符,用法 COMPRESS(source ,< characters> ,< modifier(s)>)
第2个参数是待去除的字符集,比如要去掉某个字符串中的数字,可以指定第2个参数为'0123456789'
如果只有一个参数,那么所有的空格会被去掉。