南大通用GBase 8a字符串字节长度函数LENGTH的用法和例子

本文介绍GBase 8a数据库集群,计算字符串【字节】长度的函数length的语法、说明和使用样例。请注意其与【字符】长度的函数char_length的区别。

语法

LENGTH(str)

说明

返回字符串 str 的长度,以字节进行计算。多字节的字符,比如汉字,长度会根据实际占用字节计算。

如果参数为null,则返回null。
如参数为数字,会先转成字符,科学计数法会先展开,如有小数点会占用一个字符。

样例

ASCII字符参数

gbase> select length('abcdef');
+------------------+
| length('abcdef') |
+------------------+
|                6 |
+------------------+
1 row in set (Elapsed: 00:00:00.00)

汉字参数

utf8编码的每个汉字占用3个字节。

gbase> select length('南大通用');
+------------------------+
| length('南大通用')     |
+------------------------+
|                     12 |
+------------------------+
1 row in set (Elapsed: 00:00:00.00)

NULL值参数

返回null

gbase> select length(null);
+--------------+
| length(null) |
+--------------+
|         NULL |
+--------------+
1 row in set (Elapsed: 00:00:00.00)

普通数字

先转成字符类型,如有小数点也占用一个字节。

gbase> select length(123456);
+----------------+
| length(123456) |
+----------------+
|              6 |
+----------------+
1 row in set (Elapsed: 00:00:00.00)

gbase> select length(123.456);
+-----------------+
| length(123.456) |
+-----------------+
|               7 |
+-----------------+
1 row in set (Elapsed: 00:00:00.01)

科学计数法的数字

选展开成正常的数字,再转化成字符串。同样如果有小数点,也占用一个字节。

gbase> select length(1.23456E4);
+-------------------+
| length(1.23456E4) |
+-------------------+
|                 7 |
+-------------------+
1 row in set (Elapsed: 00:00:00.00)

gbase> select length(1.23456E5);
+-------------------+
| length(1.23456E5) |
+-------------------+
|                 6 |
+-------------------+
1 row in set (Elapsed: 00:00:00.00)

gbase> select length(1.23456E6);
+-------------------+
| length(1.23456E6) |
+-------------------+
|                 7 |
+-------------------+
1 row in set (Elapsed: 00:00:00.00)

参考