§ # Oracle兼容-函数-SUBSTRB()函数
§ 1. 语法
SUBSTRB(string, pos [, substring_length] )
1
§ 2. 定义和用法
函数 SUBSTRB()
的作用是返回字符型参数 string
的一部分。该部分是由 string
的第 pos
个byte开始,取 substring_length
个byte长度。
- 若
pos
为0,视为1。表示string
的最开始的byte开始(第1个byte)。 - 若
pos
为正数,表示由string
的第pos
个byte开始。 - 若
pos
为负数,表示由string
末尾反向数回第pos
个byte开始。 - 若
substring_length
未指定,表示取到string
的最后一个byte为止。 - 若
substring_length
小于1,则返回NULL。 - 若传回的内容只包含multi-byte字符(多字节字符,例如中文字符)的一部分,该部分会以空格替代。
§ 3. 示例
greatsql> CREATE TABLE t1 ( c1 CHAR(20) );
greatsql> INSERT INTO t1 VALUES ('GreatSQL数据库默认端口3306');
-- 空格的16进制值是20
greatsql> SELECT HEX(SUBSTRB(c1, 8, 6)), CONCAT(SUBSTRB(c1, 8, 6), '|'), c1 FROM t1;
+------------------------+--------------------------------+-----------------------------------+
| HEX(SUBSTRB(c1, 8, 6)) | CONCAT(SUBSTRB(c1, 8, 6), '|') | c1 |
+------------------------+--------------------------------+-----------------------------------+
| 4CE695B02020 | L数 | | GreatSQL数据库默认端口3306 |
+------------------------+--------------------------------+-----------------------------------+
greatsql> SELECT HEX(SUBSTRB(c1, 8, 7)), CONCAT(SUBSTRB(c1, 8, 7), '|'), c1 FROM t1;
+------------------------+--------------------------------+-----------------------------------+
| HEX(SUBSTRB(c1, 8, 7)) | CONCAT(SUBSTRB(c1, 8, 7), '|') | c1 |
+------------------------+--------------------------------+-----------------------------------+
| 4CE695B0E68DAE | L数据| | GreatSQL数据库默认端口3306 |
+------------------------+--------------------------------+-----------------------------------+
greatsql> SELECT HEX(SUBSTRB(c1, 9, 9)), CONCAT(SUBSTRB(c1, 9, 9), '|'), c1 FROM t1;
+------------------------+--------------------------------+-----------------------------------+
| HEX(SUBSTRB(c1, 9, 9)) | CONCAT(SUBSTRB(c1, 9, 9), '|') | c1 |
+------------------------+--------------------------------+-----------------------------------+
| E695B0E68DAEE5BA93 | 数据库| | GreatSQL数据库默认端口3306 |
+------------------------+--------------------------------+-----------------------------------+
greatsql> SELECT HEX(SUBSTRB(c1, -10, 4)), CONCAT(SUBSTRB(c1, -10, 4), '|'), c1 FROM t1;
+--------------------------+----------------------------------+-----------------------------------+
| HEX(SUBSTRB(c1, -10, 4)) | CONCAT(SUBSTRB(c1, -10, 4), '|') | c1 |
+--------------------------+----------------------------------+-----------------------------------+
| E7ABAF20 | 端 | | GreatSQL数据库默认端口3306 |
+--------------------------+----------------------------------+-----------------------------------+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
扫码关注微信公众号