我试图在SQL中获取字符串的长度(使用Firebird版本2.x +)。 每当我选择字符串的长度时,它就会给出实际分配的字符串最大长度,而不是获取记录中字符数的长度,如下所示:
你可以想象,这对我没有帮助,因为我无法按长度排序,因为我试图通过一个具有恒定长度的属性进行排序。
我将如何实现我想要实现的目标?即:获取字符串中包含的字符数的长度。
答案 0 :(得分:1)
正如char_length
所述:
注释
- 对于类型为
CHAR
的参数,此函数返回正式的字符串长度(即声明的字段或变量的长度)。如果要获取“逻辑”长度,而不是计算尾随空格,请在将参数传递给CHAR[ACTER]_LENGTH
之前右键TRIM
。
这样做的原因是char
值用空格填充到声明的长度,所以实质上它们是声明的长度。
换句话说,您需要使用:
char_length(trim(trailing from imeprodajalca))