GBase8a_字符串函数_02
EXPORT_SET
语法格式
EXPORT_SET(bits,on,off[,separator[,number_of_bits]])
函数说明
返回值为一个字符串,对参数 bits 的比特位,按从右到左(由低位比特到高位比特) 的顺序进行检测,值中的每个比特位值,如果为 1,得到一个 on 字符串,如果为 0,得到一个 off 字符串,字符串被参数 separator 分开(默认为逗号“,”), number_of_bits 表示被检验的二进制位数(默认为 64)。
示例
示例 1:参数 bits 的值为“5”,对应的二进制是 0101,按从右到左检测,输出为 1010,对应的 ON 和 OFF 值为“Y”,“N”,因此输出“Y,N,Y,N”。
gbase> SELECT EXPORT_SET(5,'Y','N',',',4) FROM dual;
+-----------------------------+
| EXPORT_SET(5,'Y','N',',',4) |
+-----------------------------+
| Y,N,Y,N |
+-----------------------------+
1 row in set示例 2:number_of_bits 的位数大于 bits 值对应的二进制位数时,用 off 值补齐, 即“0”。
gbase> SELECT EXPORT_SET(6,'1','0',',',10) FROM dual;
+------------------------------+
| EXPORT_SET(6,'1','0',',',10) |
+------------------------------+
| 0,1,1,0,0,0,0,0,0,0 |
+------------------------------+
1 row in setFIELD(str,str1,str2,str3,...)
函数说明
返回等于 str 的字符串位置。如果 str 等于 str1 则返回 1,如果 str 等于 str2 则返回 2,依次向后进行比较。都不相等时,返回值为 0;如果所有对于 FIELD()的参数 均为字符串,则所有参数均按照字符串进行比较;如果所有的参数均为数值,则 按照数值进行比较;如果 str 为 NULL,则返回值为 0,原因是 NULL 不能同任何 值进行同等比较。FIELD()是 ELT()的补数。
示例
示例 1:FIELD()的参数为字符串,所有参数按照字符串进行比较。
gbase> SELECT FIELD('ej','Hej', 'ej', 'Heja', 'hej', 'foo') FROM dual;
+-----------------------------------------------+
| FIELD('ej','Hej', 'ej', 'Heja', 'hej', 'foo') |
+-----------------------------------------------+
|2|
+-----------------------------------------------+
1 row in set示例 2:FIELD()的参数为数字,所有参数按照数字进行比较。
gbase> SELECT FIELD('112','12','112','123','213') FROM dual;
+-------------------------------------+
| FIELD('112','12','112','123','213') |
+-------------------------------------+
|2|
+-------------------------------------+
1 row in set示例 3:str 与 str1,...strn 都不相等,返回值为 0。
gbase> SELECT FIELD('fo','Hej', 'ej', 'Heja', 'hej', 'foo') FROM dual;
+-----------------------------------------------+
| FIELD('fo','Hej', 'ej', 'Heja', 'hej', 'foo') |
+-----------------------------------------------+
|0|
+-----------------------------------------------+
1 row in setFIND_IN_SET(str,strlist)
函数说明
返回字符串 str 在 strlist 中对应的位置。参数 strlist 由字符“,”分隔的多个子串组 成;如果字符串 str 在 strlist 中,则返回匹配的位置,从 1 开始;如果字符串 str 不在 strlist 中或者 strlist 是一个空串,返回值为 0;如果 str 为 NULL,返回值为 NULL,不能同任何值进行同等比较。
示例
示例 1:字符串 str 在 strlist 中,返回其对应的位置。
gbase> SELECT FIND_IN_SET('b','a,b,c,d') FROM dual;
+----------------------------+
| FIND_IN_SET('b','a,b,c,d') |
+----------------------------+
|2|
+----------------------------+
1 row in setHEX(N_or_S)
函数说明
返回参数对应的十六进制值。如果 N_or_S 是一个数字,则返回它的十六进制字 符串形式,在这里,N 是一个 BIGINT 数,相当于 CONV(N,10,16);如果 N_or_S 是一个字符串,则返回每个字符对应的十六进制形式,其中每个字符被转化为两 个十六进制数字。以 0xff 形式出现的字符串是此函数的反转操作,此时,将每两 位十六进制转换成其 ASCII 码输出一个字符。
示例
示例 1:N_or_S 值为数字。
gbase> SELECT HEX(255) FROM dual;
+----------+
| HEX(255) |
+----------+
| FF |
+----------+
1 row in set示例 2:N_or_S 值为字符串。
gbase> SELECT HEX('abc') FROM dual;
+------------+
| HEX('abc') |
+------------+
| 616263 |
+------------+
1 row in set示例 3:以 0xff 形式出现的字符串是 HEX(N_or_S)函数的反转操作。
gbase> SELECT 0x616263 FROM dual;
+----------+
| 0x616263 |
+----------+
| abc |
+----------+
1 row in setINSERT(str,pos,len,newstr) 函数说明
示例
在字符串 str 中,从 pos 位置开始,选取 len 个字符长度的子串替换为字符串 newstr。 如果 pos 值不在长度范围之内,则返回原来的字符串;如果 len 值不在字符串剩 余长度范围之内,则替换从 pos 位置开始的其余字符串;任何一个参数是 NULL, 则返回 NULL。
示例 1:从字符串“Quadratic”的第 3 个位置开始的 4 个字符“adra”替换为“What”。
gbase> SELECT INSERT('Quadratic', 3, 4, 'What') FROM dual;
+-----------------------------------+
| INSERT('Quadratic', 3, 4, 'What') |
+-----------------------------------+
| QuWhattic |
+-----------------------------------+
1 row in set示例 2:pos 的值不在长度范围之内,返回原字符串。
gbase> SELECT INSERT('Quadratic', -1, 4, 'What') FROM dual;
+------------------------------------+
| INSERT('Quadratic', -1, 4, 'What') |
+------------------------------------+
| Quadratic |
+------------------------------------+
1 row in set示例 3:len 不在字符串剩余长度范围之内,用“What”替换从第 3 个位置开始的 其余字符串。
gbase> SELECT INSERT('Quadratic', 3, 100, 'What') FROM dual;
+-------------------------------------+
| INSERT('Quadratic', 3, 100, 'What') |
+-------------------------------------+
| QuWhat |
+-------------------------------------+
1 row in setINSTR()
语法格式
表 5-10参数说明
INSTR(str,substr) INSTR(str,substr,start_position,N)
| 参数 | 说明 |
| str | 字符串母串。 |
| substr | 字符串子串。 |
| start_position | 表示从字符串(左端)第几个字符开始匹配, 如是负数,则 从右端往前反向查找子串。可选参数,默认为 1。 |
| nth_appearance | 从 start_position 开始向字符串尾方向查找第几个匹配字符 串。可选参数,默认为 1。 |
函数说明
第一种语法功能:
说明
substr 在 str 中的位置,以 1 开始计数。
返回的位置是按全字符串正向位置计数的,与从哪个位置开始无关
示例
返回子串 substr 在字符串 str(左端开始)第一次出现的位置。如果没有,返 回 0。如果有一个参数为 NULL,则返回 NULL。
第二种语法功能:
1. 查找第 nth_appearance 个匹配字符串的功能;
2. 从母串的第 start_position 个字符开始查找匹配字符串的功能;
3. 支持第三个参数 start_position 为负数的情况,即从母串右侧第 |start_position|个位置反向查找子串的功能。
示例 1:返回“bar”在“foobarbar”中第一次出现的位置。
gbase> SELECT INSTR('foobarbar', 'bar') FROM dual;
+---------------------------+
| INSTR('foobarbar', 'bar') |
+---------------------------+
|4|
+---------------------------+
1 row in set示例 2:“foobar”不在“xbar”中。
gbase> SELECT INSTR('xbar', 'foobar') FROM dual;
+-------------------------+
| INSTR('xbar', 'foobar') |
+-------------------------+
|0|
+-------------------------+
1 row in set示例 3:如有任一参数是一个二进制字符串,则它是字母大小写敏感的。
gbase> SELECT INSTR('foobarbar', BINARY 'Bar') FROM dual;
+----------------------------------+
| INSTR('foobarbar', BINARY 'Bar') |
+----------------------------------+
|0|
+----------------------------------+
1 row in set示例 4:从字符串“beiwelcometobeijing”第三个字符开始匹配,查找“bei”第一 次出现的位置。
gbase> SELECT INSTR ('beiwelcometobeijing','bei',3) FROM dual;
+-----------------------------------+
| INSTR('beiwelcometobeijing','bei',3) |
+-----------------------------------+
| 13 |
+-----------------------------------+
1 row in set示例 5:从字符串“112111222222333333”第一个字符开始匹配,查找第二个“11” 出现的位置。
gbase> SELECT INSTR ('112111222222333333','11',1,2) FROM dual;
+--------------------------------------+
| INSTR('112111222222333333','11',1,2) |
+--------------------------------------+
|4|
+--------------------------------------+
1 row in set示例 6:从字符串“welcometochina”倒数第一个字符开始匹配,查找第一个“e” 出现的位置。
gbase> SELECT INSTR ('welcometochina','e',-1,1) FROM dual;
+----------------------------------+
| INSTR('welcometochina','e',-1,1) |
+----------------------------------+
|7|
+----------------------------------+
1 row in setLCASE(str) 函数说明
将字符串 str 中的所有字符改变为小写形式。
示例
示例 1:将“QUADRATICALLY”转为小写形式。
gbase> SELECT LCASE('QUADRATICALLY') FROM dual;
+------------------------+
| LCASE('QUADRATICALLY') |
+------------------------+
| quadratically |
+------------------------+
1 row in setLEFT(str,len)
函数说明
返回字符串 str 中最左边的 len 个字符。如果 len 超出 str 长度返回整个字符串;如 果 len 小于 1 时,返回为空;如果 len 为 NULL 返回为 NULL。
示例
示例 1:返回“foobarbar”左边五个字符。
gbase> SELECT LEFT('foobarbar', 5) FROM dual;
+----------------------+
| LEFT('foobarbar', 5) |
+----------------------+
| fooba |
+----------------------+
1 row in setLENGTH(str) 函数说明
示例
返回字符串 str 的长度,以字节进行计算。
示例 1:返回“text”的字节长度。
gbase> SELECT LENGTH('text') FROM dual;
+----------------+
| LENGTH('text') |
+----------------+
|4|
+----------------+
1 row in set示例 2:返回“南大通用”的字节长度(utf8 编码)。
gbase> SELECT LENGTH('南大通用') FROM dual;
+------------------------+
| LENGTH('南大通用')|
+------------------------+
|12|
+------------------------+
1 row in set
LOAD_FILE(file_name) 函数说明
读取文件并将这一文件按照字符串的格式返回。若文件不存在,或不能被读取, 则函数返回值为 NULL。
示例
示例 1:读取 a.txt 文件,并返回内容。
gbase> SELECT LOAD_FILE('/home/gbase/a.txt') FROM dual;
+--------------------------------+
| LOAD_FILE('/home/gbase/a.txt') |
+--------------------------------+
| adfdfafgagsdgewr |
+--------------------------------+
1 row in set
评论
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526