在SQL中获取字符串的长度

时间:2017-06-30 22:50:46

标签: sql character firebird string-length

我试图在SQL中获取字符串的长度(使用Firebird版本2.x +)。 每当我选择字符串的长度时,它就会给出实际分配的字符串最大长度,而不是获取记录中字符数的长度,如下所示:

enter image description here

你可以想象,这对我没有帮助,因为我无法按长度排序,因为我试图通过一个具有恒定长度的属性进行排序。

我将如何实现我想要实现的目标?即:获取字符串中包含的字符数的长度。

1 个答案:

答案 0 :(得分:1)

正如char_length所述:

  

注释

     
      
  • 对于类型为CHAR的参数,此函数返回正式的字符串长度(即声明的字段或变量的长度)。如果要获取“逻辑”长度,而不是计算尾随空格,请在将参数传递给CHAR[ACTER]_LENGTH之前右键TRIM
  •   

这样做的原因是char值用空格填充到声明的长度,所以实质上它们是声明的长度。

换句话说,您需要使用:

char_length(trim(trailing from imeprodajalca))