本文介绍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)