regexp_count
REGEXP_COUNT返回pattern在source_char串中出现的次数。
teledb=# select REGEXP_COUNT('teledb_pg_teledb_pg','pg') from DUAL;
regexp_count
--------------
2
(1 row)
instr
instr函数返回要截取的字符串在源字符串中的位置。
teledb=# select instr('helloworld','l') from dual;
instr
-------
3
(1 row)
regexp_substr
-
string:需要进行正则处理的字符串。
-
pattern:进行匹配的正则表达式。
-
position:起始位置,从字符串的第几个字符开始正则表达式匹配(默认为1)。
注意字符串最初的位置是1而不是0。
-
occurrence:获取第几个分割出来的组(分割后最初的字符串会按分割的顺序排列成组)。
-
modifier:模式(‘i’不区分大小写进行检索;‘c’区分大小写进行检索。默认为’c’)针对的是正则表达式里字符大小写的匹配。
teledb=# SELECT REGEXP_SUBSTR('17,20,23','[^,]+',1,1,'i') AS STR FROM DUAL;
str
-----
17
(1 row)
teledb=#
regexp_replace
regexp_replace(1,2,3,4,5,6)
语法说明:
- 1:字段
- 2:替换的字段
- 3:替换成什么
- 4:起始位置(默认从1开始)
- 5:替换的次数(0是无限次)
- 6:不区分大小写
teledb=# select regexp_replace('teledb_teledb','x','ee',1,1) from dual;
regexp_replace
------------------
teledbee_teledb
(1 row)
teledb=#
nlssort
指定排序规则。
teledb=# create table t_nlssort(f1 integer,f2 varchar2(10));
CREATE TABLE
teledb=# insert into t_nlssort values(1,'天翼云');
INSERT 0 1
teledb=# insert into t_nlssort values(2,'广州');
INSERT 0 1
teledb=# insert into t_nlssort values(3,'中国');
INSERT 0 1
teledb=# SELECT * FROM t_nlssort ORDER BY NLSSORT(f2,'NLS_SORT = SCHINESE_PINYIN_M'); f1 | f2
----+--------
1 | 天翼云
3 | 中国
2 | 广州
(3 rows)
teledb=#
目前TeleDB 只能支持按拼音。
nls_upper
将字符转换为大写。
teledb=# select NLS_UPPER('teledb','nls_sort= SCHINESE_PINYIN_M') from dual;
nls_upper
-----------
TELEDB
(1 row)
teledb=#
nchr
给出一个数字代码,返回其对应字符。
teledb=# select NCHR(116) from dual;
nchr
------
t
(1 row)
teledb=#
length
获取字符长度。
teledb=# select length(1);
length
--------
1
(1 row)
teledb=# select length('teledb');
length
--------
7
(1 row)
teledb=# select length('阿弟');
length
--------
2
(1 row)
teledb=# select length(12.12::numeric(10,2));
length
--------
5
(1 row)
teledb=#
LENGTHB
返回字符的长度。
teledb=# select LENGTHB('测试') from dual;
lengthb
---------
6
(1 row)
teledb=# select LENGTH('测试') from dual;
length
--------
2
(1 row)
teledb=#