GBase8a_字符串函数
概述
对于操作字符串位置的函数,第一个位置被标记为 1。
ASCII(str)
函数说明
返回字符串 str 首字符的 ASCII 码值;
如果 str 是一个空字符串,那么返回值为 0;
如果 str 是一个 NULL,返回值为 NULL;
ASCII()只适合数值在 0 和 255 之间的字符。
示例
示例 1:str 的值为“2”,返回“2”对应的 ASCII 码值。
gbase> SELECT ASCII('2') FROM dual;
+------------+
| ASCII('2') |
+------------+
| 50 |
+------------+
1 row in set示例 2:str 的值为“dx”,返回“d”对应的 ASCII 码值。
gbase> SELECT ASCII('dx') FROM dual;
+-------------+
| ASCII('dx') |
+-------------+
| 100 |
+-------------+
1 row in setBIN(N)
函数说明
返回 N 的二进制形式,N 是 BIGINT 类型数值;
如果 N 是一个 NULL,返回值为 NULL。
示例
示例 1:N 的值为“12”,返回“12”对应的二进制形式。
gbase> SELECT BIN(12) FROM dual;
+---------+
| BIN(12) |
+---------+
| 1100 |
+---------+
1 row in setBIT_LENGTH(str)
函数说明
返回字符串 str 的比特长度,以比特进行计算。
示例
示例 1:str 的值为“text”,返回其对应的比特长度。
gbase> SELECT BIT_ENGTH('text') FROM dual;
+--------------------+
| BIT_LENGTH('text') |
+--------------------+
| 32 |
+--------------------+
1 row in set示例 2:当前字符集是 UTF8,str 为“南大通用”,返回其对应的比特长度。
gbase> SELECT BIT_LENGTH('南大通用') FROM dual;
+----------------------------+
| BIT_LENGTH('南大通用') |
+----------------------------+
| 96 |
+----------------------------+
1 row in set
gbase> SHOW VARIABLES LIKE 'CHARACTER SET_SERVER';
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| character_set_server | utf8 |
+----------------------+-------+
1 row in setCHAR(N1,N2...)
函数说明
N1,N2...为整数类型参数,返回相应代表的 ASCII 码值对应的字符组成的字符串,
如果参数列表中含有 NULL 则忽略。
示例
示例 1:N 的值为“71,66,97,115,101”,各整数对应的 ASCII 码所代表的字符为
“G”,“B”,“a”,“s”,“e”。
gbase> SELECT CHAR(71,66,97,115,101) FROM dual;
+------------------------+
| CHAR(71,66,97,115,101) |
+------------------------+
| GBase |
+------------------------+
1 row in set示例 2:N 的值中包含 NULL,则 NULL 被忽略。
gbase> SELECT CHAR(77,72,NULL,
'77') FROM dual;
+-----------------------+
| CHAR(77,72,NULL,'77') |
+-----------------------+
| MHM |
+-----------------------+
1 row in setCHAR_LENGTH(str)
函数说明
返回字符串 str 的字符长度,以字符个数为单位。
示例
示例 1:返回“text”的字符长度。
gbase> SELECT CHAR_LENGTH('text') FROM dual;
+---------------------+
| CHAR_LENGTH('text') |
+---------------------+
| 4 |
+---------------------+
1 row in set示例 2:返回“南大通用”的字符长度。
gbase> SELECT CHAR_LENGTH('南大通用') FROM dual;
+-------------------------+
| CHAR_LENGTH('南大通用') |
+-------------------------+
| 4 |
+-------------------------+
1 row in setCHARACTER_LENGTH(str)
函数说明
等价于 CHAR_LENGTH()。
CONCAT(str1,str2,...)
函数说明
返回结果为连接参数产生的字符串。如有任何一个参数为 NULL,则返回值为NULL。
示例
示例 1:连接字符串“GB”,“a”,“se”。
gbase> SELECT CONCAT('GB','a','se') FROM dual;
+-------------------------+
| CONCAT('GB','a','se') |
+-------------------------+
| GBase |
+-------------------------+
1 row in set示例 2:任何一个参数为 NULL,返回值为 NULL。
gbase> SELECT CONCAT('GB', NULL,'se') FROM dual;
+--------------------------+
| CONCAT('GB', NULL,'se') |
+--------------------------+
| NULL |
+--------------------------+
1 row in set示例 3:如果在一个字符串上下文中使用一个数字,该数字会被自动地转换为字符串。
gbase> SELECT CONCAT('hello you ',2) FROM dual;
+------------------------+
| CONCAT('hello you ',2) |
+------------------------+
| hello you 2 |
+------------------------+
1 row in set示例 4:“str1 || str2 || str3”等价于 CONCAT(str1,str2,str3)。
gbase> SELECT 'GB' || 'a' || 'se' FROM dual;
+---------------------+
| 'GB' || 'a' || 'se' |
+---------------------+
| GBase |
+---------------------+
1 row in setCONCAT_WS(separator,str1,str2,...)
函数说明
CONCAT_WS()代表 CONCAT With Separator,是 CONCAT()的特殊形式。第一个参数是其它参数的分隔符,分隔符可以是一个字符,也可以是一个字符串或者是一个参数。如果分隔符为 NULL,则结果为 NULL,函数会忽略分隔符后面参数中的 NULL 值。
示例
示例 1:分隔符为“,”。
gbase> SELECT CONCAT_WS(',','First name','Second name','Last Name')FROM dual;
+-------------------------------------------------------+
|CONCAT_WS(',','First name','Second name','Last Name') |
+-------------------------------------------------------+
| First name,Second name,Last Name |
+-------------------------------------------------------+
1 row in set示例 2:分隔符为“,”,其中一个 str 为 NULL。
gbase> SELECT CONCAT_WS(',','First name',NULL,'Last Name') FROM dual;
+----------------------------------------------+
| CONCAT_WS(',','First name',NULL,'Last Name') |
+----------------------------------------------+
| First name,Last Name |
+----------------------------------------------+
1 row in setCONV(N,from_base,to_base)
函数说明
不同数字进制间的转换。将 N 由 from_base 进制转化为 to_base 进制,返回值为to_base 进制形式的字符串,如有任意一个参数为 NULL,则返回值为 NULL。参
数 N 为整数或字符串, 最小为 2 进制, 最大为 36 进制。 如果 to_base 是一个负数,则 N 被看作一个带符号数,否则 N 被看作无符号数。
CONV(N,10,2)等价于 BIN(N)。
示例
示例 1:将“a”由 16 进制转为 2 进制。
gbase> SELECT CONV('a',16,2) FROM dual;
+----------------+
| CONV('a',16,2) |
+----------------+
| 1010 |
+----------------+
1 row in set示例 2:将“6E”由 18 进制转为 8 进制。
gbase> SELECT CONV('6E',18,8) FROM dual;
+-----------------+
| CONV('6E',18,8) |
+-----------------+
| 172 |
+-----------------+
1 row in set示例 3:将“-17”由 10 进制转为带符号的 18 进制。
gbase> SELECT CONV(-17,10,-18) FROM dual;
+------------------+
| CONV(-17,10,-18) |
+------------------+
| -H |
+------------------+
1 row in set示例 4:将“10+'10'+'10'+0xa”由 10 进制转为 10 进制。
gbase> SELECT CONV(10+'10'+'10'+0xa,10,10) FROM dual;
+------------------------------+
| CONV(10+'10'+'10'+0xa,10,10) |
+------------------------------+
| 40 |
+------------------------------+
1 row in setELT(N,str1,str2,str3,...)
函数说明
返回第 N 个 str。 若 N=1, 则返回值为 str1, 若 N=2, 则返回值为 str2, 以此类推,若 N 小于 1 或大于参数的数目,则返回值为 NULL。
示例
示例 1:N=1,则返回值为 str1。
gbase> SELECT ELT(1,'ej','Heja',‘hej’,'foo') FROM dual;
+------------------------------------+
| ELT(1,'ej','Heja','hej','foo') |
+------------------------------------+
| ej |
+------------------------------------+
1 row in set示例 2:N=4,则返回值为 str4。
gbase> SELECT ELT(4,'ej','Heja','hej','foo') FROM dual;
+------------------------------------+
| ELT(4,'ej','Heja','hej','foo') |
+------------------------------------+
| foo |
+------------------------------------+
1 row in set示例 3:N=9,大于参数的数目,返回值为 NULL。
gbase> SELECT ELT(9,'ej','Heja','hej','foo') FROM dual;
+------------------------------------+
| ELT(9,'ej','Heja','hej','foo') |
+------------------------------------+
| NULL |
+------------------------------------+
1 row in set评论
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526