字符函數
更新時間 2025-02-14 10:22:05
最近更新時間: 2025-02-14 10:22:05
分享文章
本頁介紹天翼云TeleDB數據庫Oracle語法中的字符函數。
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=#