新聞中心
CONCAT
聲明

CONCAT(str1, .., strN)說明
把多個(gè)字符串連接成一個(gè)字符串。參數(shù)中包含 NULL 時(shí),返回 NULL。
例子
obclient> SELECT
CONCAT('test','obclient', '1.0'),
CONCAT('test','obclient', NULL)
\G
*************************** 1. row ***************************
CONCAT('test','obclient', '1.0'): testobclient1.0
CONCAT('test','obclient', NULL): NULL
1 row in set (0.01 sec)
CONCAT_WS
聲明
CONCAT_WS(separator, str1, .., strN)說明
把多個(gè)字符串連接成一個(gè)字符串,相鄰字符串間使用 separator 分隔。參數(shù)中包含 NULL 時(shí),將忽略 NULL。
例子
obclient> SELECT
CONCAT_WS('_', 'First', 'Second'),
CONCAT_WS('_', 'First', NULL, 'Second')
\G
*************************** 1. row ***************************
CONCAT_WS('_', 'First', 'Second'): First_Second
CONCAT_WS('_', 'First', NULL, 'Second'): First_Second
1 row in set (0.00 sec)
FORMAT
聲明
FORMAT(X,D)說明
把數(shù)字 X 格式化為“#,###,###.##”格式,四舍五入到 D 位小數(shù),并以字符串形式返回結(jié)果(如果整數(shù)部分超過三位,會(huì)用“,”作為千分位分隔符)。如果 D 為 0,則結(jié)果沒有小數(shù)點(diǎn)或小數(shù)部分。
例子
obclient> SELECT FORMAT(12332.123456, 4) from DUAL;
+-------------------------+
| format(12332.123456, 4) |
+-------------------------+
| 12,332.1235 |
+-------------------------+
1 row in set (0.00 sec)
obclient> SELECT FORMAT(12332.1, 4) from DUAL;
+--------------------+
| format(12332.1, 4) |
+--------------------+
| 12,332.1000 |
+--------------------+
1 row in set (0.01 sec)
obclient> SELECT FORMAT(12332.2, 0) from DUAL;
+--------------------+
| format(12332.2, 0) |
+--------------------+
| 12,332 |
+--------------------+
1 row in set (0.00 sec)
SUBSTR
聲明
SUBSTR(str, pos)
SUBSTR(str, pos, len)
SUBSTR(str FROM pos)
SUBSTR(str FROM pos FOR len)說明
返回 str 的子字符串,起始位置為 pos,長度為 len。參數(shù)中包含 NULL 時(shí),返回 NULL。
-
不指定
len時(shí),返回的子字符串從pos位置開始到str結(jié)尾。
-
pos值為負(fù)數(shù)時(shí),從str尾部向頭部倒序確定起始位置。
-
len小于等于 0,或pos指定的起始位置非法時(shí),返回空字符串。
例子
obclient> SELECT
SUBSTR('abcdefg', 3),
SUBSTR('abcdefg', 3, 2),
SUBSTR('abcdefg', -3),
SUBSTR('abcdefg', 3, -2),
SUBSTR('abcdefg' from -4 for 2)
\G
*************************** 1. row ***************************
SUBSTR('abcdefg', 3): cdefg
SUBSTR('abcdefg', 3, 2): cd
SUBSTR('abcdefg', -3): efg
SUBSTR('abcdefg', 3, -2):
SUBSTR('abcdefg' from -4 for 2): de
1 row in set (0.01 sec)
SUBSTRING
聲明
SUBSTRING(str, pos)
SUBSTRING(str, pos, len)
SUBSTRING(str FROM pos)
SUBSTRING(str FROM pos FOR len)說明
同 SUBSTR。
TRIM
聲明
TRIM([[{BOTH | LEADING | TRAILING}] [remstr] FROM] str)說明
刪除字符串所有前綴和/或后綴,默認(rèn)為 BOTH。參數(shù)中包含 NULL 時(shí),返回 NULL。
例子
obclient> SELECT
TRIM(' bar '),
TRIM(LEADING 'x' FROM 'xxxbarxxx'),
TRIM(BOTH 'x' FROM 'xxxbarxxx'),
TRIM(TRAILING 'x' FROM 'xxxbarxxx')
\G
*************************** 1. row ***************************
TRIM(' bar '): bar
TRIM(LEADING 'x' FROM 'xxxbarxxx'): barxxx
TRIM(BOTH 'x' FROM 'xxxbarxxx'): bar
TRIM(TRAILING 'x' FROM 'xxxbarxxx'): xxxbar
1 row in set (0.01 sec)
LTRIM
聲明
LTRIM(str)說明
刪除字符串左側(cè)的空格。
RTRIM
聲明
RTRIM(str)說明
刪除字符串右側(cè)的空格。
ASCII
聲明
ASCII(str)說明
返回字符串最左側(cè)字符的 ASCII 碼。
ORD
聲明
ORD(str)說明
返回字符串最左側(cè)字符的字符碼。單字節(jié)編碼如果最左側(cè)字符是多字節(jié)編碼字符,返回值計(jì)算規(guī)則如下:
(1st byte code)
+ (2nd byte code * 256)
+ (3rd byte code * 256^2) ...例子
obclient> SELECT ORD('中國');
+---------------+
| ORD('中國') |
+---------------+
| 14989485 |
+---------------+
1 row in set (0.01 sec)
LENGTH
聲明
LENGTH(str)說明
返回 str 的字節(jié)長度。
例子
obclient> SELECT LENGTH('中國'), LENGTH('hello');
+------------------+-----------------+
| LENGTH('中國') | LENGTH('hello') |
+------------------+-----------------+
| 6 | 5 |
+------------------+-----------------+
1 row in set (0.01 sec)
CHAR_LENGTH
聲明
CHAR_LENGTH(str)說明
返回字符串包含的字符數(shù)。
例子
obclient> SELECT CHAR_LENGTH('中國'), CHAR_LENGTH('hello');
+-----------------------+----------------------+
| CHAR_LENGTH('中國') | CHAR_LENGTH('hello') |
+-----------------------+----------------------+
| 2 | 5 |
+-----------------------+----------------------+
1 row in set (0.00 sec)
UPPER
聲明
UPPER(str)說明
將字符串中的小寫字母轉(zhuǎn)化為大寫字母。
例子
obclient> obclient> SELECT UPPER('obclient您好!');
+----------------------------+
| UPPER('obclient您好!') |
+----------------------------+
| OBCLIENT您好! |
+----------------------------+
1 row in set (0.00 sec)
LOWER
聲明
LOWER(str)說明
將字符串中的大寫字母轉(zhuǎn)化為小寫字母。
例子
obclient> SELECT LOWER('obclient您好!');
+-----------------------------+
| LOWER('obclient您好!') |
+-----------------------------+
| obclient您好! |
+-----------------------------+
1 row in set (0.01 sec)
HEX
聲明
HEX(str)說明
將數(shù)字或字符串轉(zhuǎn)化為十六進(jìn)制字符串。
例子
obclient> SELECT HEX(255), HEX('abc');
+----------+------------+
| HEX(255) | HEX('abc') |
+----------+------------+
| FF | 616263 |
+----------+------------+
1 row in set (0.00 sec)
UNHEX
聲明
UNHEX(str)說明
將十六進(jìn)制字符串轉(zhuǎn)化為正常字符串。
例子
obclient> SELECT UNHEX('4f6365616e42617365');
+-----------------------------+
| UNHEX('4f6365616e42617365') |
+-----------------------------+
| OceanBase |
+-----------------------------+
1 row in set (0.01 sec)
MD5
聲明
MD5(str)說明
返回字符串的 MD5 值。
例子
obclient> SELECT MD5(1);
+----------------------------------+
| MD5(1) |
+----------------------------------+
| c4ca4238a0b923820dcc509a6f75849b |
+----------------------------------+
1 row in set (0.00 sec)
INT2IP
聲明
INT2IP(int_value)說明
將整數(shù)內(nèi)碼轉(zhuǎn)換成 IP 地址。
例子
obclient> SELECT
INT2IP(16777216),
HEX(16777216),
INT2IP(1)
\G
*************************** 1. row ***************************
INT2IP(16777216): 1.0.0.0
HEX(16777216): 1000000
INT2IP(1): 0.0.0.1
1 row in set (0.01 sec)
IP2INT
聲明
IP2INT('ip_addr')說明
將 IP 地址轉(zhuǎn)換成整數(shù)內(nèi)碼。
例子
obclient> SELECT
IP2INT('0.0.0.1'),
HEX(IP2INT('0.0.0.1')),
HEX(IP2INT('1.0.0.0'))
\G
*************************** 1. row ***************************
IP2INT('0.0.0.1'): 1
HEX(IP2INT('0.0.0.1')): 1
HEX(IP2INT('1.0.0.0')): 1000000
1 row in set (0.01 sec)
LIKE
聲明
str1 [NOT] LIKE str2 [ESCAPE str3]說明
字符串通配符匹配。參數(shù)中包含 NULL 時(shí),返回 NULL。
通配符包括:
-
%:匹配任意長度字符串。
-
_:匹配單個(gè)字符。
ESCAPE 用于定義轉(zhuǎn)義符,如果 str2 中包含 str3,在匹配時(shí) str3 后的字符將做為普通字符處理。
例子
obclient> SELECT 'ab%' LIKE 'abc%' ESCAPE 'c';
+------------------------------+
| 'ab%' LIKE 'abc%' ESCAPE 'c' |
+------------------------------+
| 1 |
+------------------------------+
1 row in set (0.01 sec)
REGEXP
聲明
str [NOT] REGEXP | RLIKE pat說明
正則匹配。參數(shù)中包含 NULL 時(shí),返回 NULL。
例子
obclient> SELECT
1234 REGEXP 1,
'hello' RLIKE 'h%'
\G
*************************** 1. row ***************************
1234 REGEXP 1: 1
'hello' RLIKE 'h%': 0
1 row in set (0.01 sec)
REPEAT
聲明
REPEAT(str, count)說明
返回 str 重復(fù) count 次組成的字符串。count 小于等于 0 時(shí),返回空字符串。參數(shù)中包含 NULL 時(shí),返回 NULL。
例子
obclient> SELECT
REPEAT('1', -1),
REPEAT(null, null),
REPEAT('Abc', 4)
\G
*************************** 1. row ***************************
REPEAT('1', -1):
REPEAT(null, null): NULL
REPEAT('Abc', 4): AbcAbcAbcAbc
1 row in set (0.01 sec)
SPACE
聲明
SPACE(N)說明
返回包含 N 個(gè)空格的字符串。
SUBSTRING_INDEX
聲明
SUBSTRING_INDEX(str, delim, count)說明
在定界符 delim 以及 count 出現(xiàn)前,從字符串 str 返回字符串。若 count 為正值,則返回最終定界符(從左邊開始)左邊的一切內(nèi)容。若 count 為負(fù)值,則返回定界符(從右邊開始)右邊的一切內(nèi)容。任意一個(gè)參數(shù)為 NULL,返回 NULL;若 str 或 delim 為空字符串,則返回空串;若 count = 0, 返回空串。
str, delim, count 參數(shù)支持?jǐn)?shù)值與字符串的隱式轉(zhuǎn)換。
例子
obclient>select substring_index('abcdabc', 'abc', 0), substring_index('abcdabc', 'abc', 1), substring_index('abcdabc', 'abc', 2), substring_index('abcdabc', 'abc', 3), substring_index('abcdabc', 'abc', -1), substring_index('abcdabc', 'abc', -2), substring_index('abcdabc', 'abc', -3)\G;
*************************** 1. row ***************************
substring_index('abcdabc', 'abc', 0):
substring_index('abcdabc', 'abc', 1):
substring_index('abcdabc', 'abc', 2): abcd
substring_index('abcdabc', 'abc', 3): abcdabc
substring_index('abcdabc', 'abc', -1):
substring_index('abcdabc', 'abc', -2): dabc
substring_index('abcdabc', 'abc', -3): abcdabc
1 row in set (0.00 sec)
LOCATE
聲明
LOCATE(substr,str) , LOCATE(substr,str,pos)
說明
第一個(gè)語法返回字符串 str 中子字符串 substr 的第一個(gè)出現(xiàn)位置。第二個(gè)語法返回字符串 str 中子字符串 substr 的第一個(gè)出現(xiàn)位置, 起始位置在 pos。如若 substr 不在 str 中,則返回值為 0。
例子
obclient> SELECT LOCATE('bar', 'foobarbar'), LOCATE('xbar', 'foobar'), LOCATE('bar', 'foobarbar',5);
+----------------------------+--------------------------+------------------------------+
| LOCATE('bar', 'foobarbar') | LOCATE('xbar', 'foobar') | LOCATE('bar', 'foobarbar',5) |
+----------------------------+--------------------------+------------------------------+
| 4 | 0 | 7 |
+----------------------------+--------------------------+------------------------------+
1 row in set (0.00 sec)
POSITION
聲明
POSITION(substr IN str)
說明
與 LOCATE 同義。
INSTR
聲明
INSTR(str,substr)
說明
返回字符串 str 中子字符串的第一個(gè)出現(xiàn)位置。這和 LOCATE() 的雙參數(shù)形式相同,除非參數(shù)的順序被顛倒。
例子
obclient> SELECT INSTR('foobarbar', 'bar'), INSTR('xbar', 'foobar');
+---------------------------+-------------------------+
| INSTR('foobarbar', 'bar') | INSTR('xbar', 'foobar') |
+---------------------------+-------------------------+
| 4 | 0 |
+---------------------------+-------------------------+
1 row in set (0.00 sec)
REPLACE
聲明
REPLACE(str, from_str, to_str)
說明
返回字符串 str 以及所有被字符 to_str 替代的字符串 from_str。
例子
obclient> SELECT REPLACE('abc.efg.gpg.nowdew.abc.dabc.e', 'abc.', 'www');
+---------------------------------------------------------+
| REPLACE('abc.efg.gpg.nowdew.abc.dabc.e', 'abc.', 'www') |
+---------------------------------------------------------+
| wwwefg.gpg.nowdew.wwwdwwwe |
+---------------------------------------------------------+
1 row in set (0.00 sec)
FIELD
聲明
FIELD(str,str1,str2,str3,…)
說明
返回參數(shù) str 在 str1, str2, str3,… 列表中的索引位置(從 1 開始的位置)。在找不到 str 的情況下,返回值為 0。
如果所有的對于 FIELD() 的參數(shù)均為字符串,則所有參數(shù)均按照字符串進(jìn)行比較。如果所有的參數(shù)均為數(shù)字,則按照數(shù)字進(jìn)行比較。否則,參數(shù)均按照 double 類型進(jìn)行比較。
如果 str 為 NULL,則返回值為 0,原因是 NULL 不能同任何值進(jìn)行同等比較。FILED() 是 ELT() 的補(bǔ)數(shù)。
例子
obclient> select field('abc','abc1','abc2','abc','abc4','abc'), field(NULL, 'null1', NULL);
+-----------------------------------------------+----------------------------+
| field('abc','abc1','abc2','abc','abc4','abc') | field(NULL, 'null1', NULL) |
+-----------------------------------------------+----------------------------+
| 3 | 0 |
+-----------------------------------------------+----------------------------+
1 row in set (0.00 sec)
ELT
聲明
ELT(N, str1, str2, str3,…)
說明
若 N=1,則返回值為 str1;若 N=2,則返回值為 str2;以此類推。若 N 小于 1 或大于參數(shù)的數(shù)目,則返回值為 NULL。ELT() 是 FIELD() 的補(bǔ)數(shù)。
例子
obclient> select elt(3, 'abc1', 'abc2', 'abc', 'abc4', 'abc'), elt(0, 'null1', NULL);
+----------------------------------------------+-----------------------+
| elt(3, 'abc1', 'abc2', 'abc', 'abc4', 'abc') | elt(0, 'null1', NULL) |
+----------------------------------------------+-----------------------+
| abc | NULL |
+----------------------------------------------+-----------------------+
1 row in set (0.00 sec)
INSERT
聲明
INSERT (str1,pos,len,str2)
說明
返回字符串 str1,字符串中起始于 pos 位置,長度為 len 的子字符串將被 str2 取代。如果 pos 超過字符串長度,則返回值為原始字符串。 假如 len 的長度大于其它字符串的長度,則從位置 pos 開始替換。若任何一個(gè)參數(shù)為 null,則返回值為 NULL。這個(gè)函數(shù)支持多字節(jié)字元。
str1和str2必須是字符串,pos和len必須是整數(shù)。任意參數(shù)為 NULL,結(jié)果總為 NULL。
str1和str2中的文字符被當(dāng)做字節(jié)流看待。
pos值為負(fù)數(shù)或者大于str1長度時(shí),返回str1。
-
當(dāng)
len小于 0,或大于str1的長度時(shí),返回結(jié)果為str1從開頭到pos位置的串,和str2的組合串。
例子
obclient> select insert('Quadratic',-2,100,'What'), insert('Quadratic',7,3,'What'),
insert('Quadratic',-1,3,'What'), insert('Quadratic',10,3,'What'), insert('Quadratic',5,-1,''),
insert('Quadratic',7,-1,'What')\G;
*************************** 1. row ***************************
insert('Quadratic',-2,100,'What'): Quadratic
insert('Quadratic',7,3,'What'): QuadraWhat
insert('Quadratic',-1,3,'What'): Quadratic
insert('Quadratic',10,3,'What'): Quadratic
insert('Quadratic',5,-1,''): Quad
insert('Quadratic',7,-1,'What'): QuadraWhat
1 row in set (0.01 sec)
LPAD
聲明
LPAD(str, len, padstr)
說明
用指定字符串 padstr,在左側(cè)填充字符串 str 到指定長度 len。如果 str 長度大于 len,則 str 被截?cái)唷?/p>
例子
obclient> SELECT LPAD('hi',4,'??');
+-------------------+
| LPAD('hi',4,'??') |
+-------------------+
| ??hi |
+-------------------+
1 row in set (0.01 sec)
obclient> SELECT LPAD('hi',1,'??');
+-------------------+
| LPAD('hi',1,'??') |
+-------------------+
| h |
+-------------------+
1 row in set (0.00 sec)
RPAD
聲明
RPAD(str, len, padstr)
說明
用指定字符串 padstr,在右側(cè)填充字符串 str 到指定長度 len。如果 str 長度大于 len,則 str 被截?cái)唷?/p>
例子
obclient> SELECT RPAD('hi',4,'??');
+-------------------+
| RPAD('hi',4,'??') |
+-------------------+
| hi?? |
+-------------------+
1 row in set (0.00 sec)
obclient> SELECT RPAD('hi',1,'??');
+-------------------+
| RPAD('hi',1,'??') |
+-------------------+
| h |
+-------------------+
1 row in set (0.00 sec)
UUID
聲明
uuid()
說明
生成一個(gè)全局唯一 ID。
例子
obclient> select uuid();
+--------------------------------------+
| uuid() |
+--------------------------------------+
| f756a1f6-4de6-11e8-90af-90b11c53e421 |
+--------------------------------------+
1 row in set (0.00 sec)
BIN
聲明
bin(N)
說明
返回?cái)?shù)字 N 的二進(jìn)制形式。
例子
obclient> SELECT BIN(12);
+---------+
| BIN(12) |
+---------+
| 1100 |
+---------+
1 row in set (0.00 sec)
QUOTE
聲明
quote(str)
說明
引用一個(gè)字符串以產(chǎn)生一個(gè)結(jié)果可以作為 SQL 語句中正確地轉(zhuǎn)義數(shù)據(jù)值。返回的字符串由單引號(hào)和單引號(hào)的各個(gè)實(shí)例封閉(''),反斜線(''),ASCII NUL 和 Control-Z 前面加一個(gè)反斜杠。如果參數(shù)為 NULL,則返回值是詞 'NULL' 不包括單引號(hào)。
例子
obclient> SELECT QUOTE('Don\'t!');
+------------------+
| QUOTE('Don\'t!') |
+------------------+
| 'Don\'t!' |
+------------------+
1 row in set (0.00 sec)
obclient> SELECT QUOTE(NULL);
+-------------+
| QUOTE(NULL) |
+-------------+
| NULL |
+-------------+
1 row in set (0.00 sec)
REGEXP_SUBSTR
聲明
REGEXP_SUBSTR(str,pattern,[position[,occurrence[,match_param[,subexpr]]]])
說明
在 str 中搜索匹配正則表達(dá)式 pattern 的子串,子串不存在返回 NULL。這個(gè)函數(shù)支持多字節(jié)字元。除 match_param 外,其他任意參數(shù)為 NULL,結(jié)果為 NULL。
-
str待搜索的字符串,支持多字節(jié)字元。
-
pattern正則表達(dá)式,正則表達(dá)式規(guī)則兼容 MySQL 數(shù)據(jù)庫。
-
position為搜索的開始位置。必須是大于 0 的正整數(shù),小于等于 0 報(bào)錯(cuò),輸入為 NULL 返回 NULL,默認(rèn)值為 1,表示從第一個(gè)字符開始搜索。
-
occurrence返回第幾次匹配的值。必須是大于等于 0 的正整數(shù),小于等于 0 報(bào)錯(cuò),輸入為 NULL 返回 NULL,默認(rèn)值是 1,表示返回第一次匹配的結(jié)果。
-
match_param搜索參數(shù),字符串類型,目前僅支持兩個(gè)字符 ‘i’,‘c’。i: 代表忽略大小寫,c: 代表不忽略,其他字符報(bào)錯(cuò)。默認(rèn)值根據(jù)str字符集的 collection 決定。 為 NULL 時(shí)使用默認(rèn)值。
-
subexpr返回正則表達(dá)式中第幾個(gè)組的值。大于等于 0 的整數(shù),小于 0 則報(bào)錯(cuò)。默認(rèn)值是 0,表示返回滿足整個(gè)pattern的子串。
例子
obclient> select regexp_substr('I have 2 apples and 100 bucks!', '[[:blank:]][[:alnum:]]*', 1, 1) from dual;
+----------------------------------------------------------------------------------+
| regexp_substr('I have 2 apples and 100 bucks!', '[[:blank:]][[:alnum:]]*', 1, 1) |
+----------------------------------------------------------------------------------+
| have |
+----------------------------------------------------------------------------------+
1 row in set (0.00 sec)
obclient> select regexp_substr('foothebar', 'foo(.*)(bar)', 1, 1, 'c', 1) from dual;
+----------------------------------------------------------+
| regexp_substr('foothebar', 'foo(.*)(bar)', 1, 1, 'c', 1) |
+----------------------------------------------------------+
| the |
+----------------------------------------------------------+
1 row in set (0.01 sec) 新聞標(biāo)題:創(chuàng)新互聯(lián)OceanBase教程:OceanBase字符串函數(shù)
當(dāng)前路徑:http://www.5511xx.com/article/cooeieg.html


咨詢
建站咨詢
