获取字符串长度
bit_length(string)
描述:字符串的位数。返回结果为字节数乘以8,得到总位数。字符串的位数取决于数据库编码方式,例如GBK字符编码下,一个中文为2个字节,UTF8和SQL_ASCII字符编码下,一个中文字为3个字节。
返回值类型:integer
示例:
1 2 3 4 5 |
SELECT bit_length('world'); bit_length ------------ 40 (1 row) |
GBK字符编码下,示例:
1 2 3 4 5 |
SELECT bit_length('我们'); bit_length ------------ 32 (1 row) |
UTF8和SQL_ASCII字符编码下,示例:
1 2 3 4 5 |
SELECT bit_length('我们'); bit_length ------------ 48 (1 row) |
lengthb(text/bpchar)
描述:获取指定字符串的字节数。
返回值类型:integer
- 若字符串中存在换行符,如字符串由一个换行符和一个空格组成,在DWS中LENGTH和LENGTHB的值为2。
- 此函数获取的为指定字符串的字节数,对于多字节字符编码,一个字符可能占用多个字节(例如,UTF-8编码中,中文字符通常占用3个字节)。
示例:
1 2 3 4 5 |
SELECT lengthb('hello'); lengthb --------- 5 (1 row) |
UTF8编码中,示例:
1 2 3 4 5 |
SELECT lengthb('数据库'); lengthb --------- 9 (1 row) |
char_length(string)或character_length(string)
描述:获取字符串中的字符个数。
返回值类型:integer
对于多字节字符编码,一个字符可能占用多个字节(例如,UTF-8编码中,中文字符通常占用3个字节)。
示例:
1 2 3 4 5 6 7 8 9 10 11 |
SELECT char_length('hello'); char_length ------------- 5 (1 row) SELECT char_length('数据库'); char_length ------------- 9 (1 row) |
length(string bytea, encoding name)
描述:获取指定编码格式的字符串的字符数。在指定的编码格式中,string必须是有效的。
返回值类型:integer
示例:
1 2 3 4 5 |
SELECT length('database', 'UTF8'); length -------- 8 (1 row) |
octet_length(string)
描述:获取字符串中的字节数。该函数返回字符串的字节数,对于处理多字节字符(如 UTF-8 编码的汉字、特殊符号等)非常重要,它能准确获取字符串的存储大小。
返回值类型:integer
示例:
1 2 3 4 5 6 7 8 9 10 11 |
SELECT octet_length('data'); octet_length -------------- 4 (1 row) SELECT octet_length('数据库'); octet_length -------------- 9 (1 row) |
length(string)
描述:获取字符串的字符长度(字符数量)。
返回值类型:integer
示例:
1 2 3 4 5 |
SELECT length('database'); length -------- 8 (1 row) |
lengthb(string)
描述:获取字符串的字节长度。与字符集有关,同样的中文字符,在GBK与UTF8中,返回的字节数不同。
返回值类型:integer
示例:
1 2 3 4 5 |
SELECT lengthb('hello'); lengthb --------- 5 (1 row) |