GBase 8a
运维管理
文章

GBase8a_字符串函数

发表于2026-03-31 16:30:3013次浏览5个评论

概述

对于操作字符串位置的函数,第一个位置被标记为 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 set

BIN(N)

函数说明

 返回 N 的二进制形式,N 是 BIGINT 类型数值;

 如果 N 是一个 NULL,返回值为 NULL。

示例

示例 1:N 的值为“12”,返回“12”对应的二进制形式。

gbase> SELECT BIN(12) FROM dual;
+---------+
| BIN(12) |
+---------+
| 1100 |
+---------+
1 row in set

BIT_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 set

CHAR(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 set

CHAR_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 set

CHARACTER_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 set

CONCAT_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 set

CONV(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 set

ELT(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

评论

登录后才可以发表评论
GBase用户21143发表于 4个月前
优秀
GBase用户51820发表于 2个月前
厉害了
shepherd发表于 2个月前
三人行必有我师
GBase用户51935发表于 2个月前
谢谢分享
GBase用户47954发表于 1个月前
感谢作者的精彩分享!