sql中字符串长度函数是什么

上周 你是对的。

LEN() 是通用的。
CHAR_LENGTH() 区分大小写。

MySQL 有一个陷阱。
LENGTH() 返回字节数。

SQLServer 很简单。
只需使用 LEN() 即可。

空字符串为0。
NULL 值仍然是 NULL。

算了。

sql中的len函数怎么用呀 LEN(Space(5))-1,结果是什么呢 是什么意思呀,求助

严格来说,space(5 ) 和 ' '(5 个空格)在 SQL Server 中是等价的;但rtim函数会去掉右边的所有空格,因此最终长度变成0,0的ASCII码为-1
扩展,先说最重要的:space(5 )输出5 个空格字符,直接转为字符串,就是' '。
SQL Server有一个特性,字符串函数默认会进行rtim处理。
例如rtim(' ')直接返回空字符串''。
因此 len(rtim(space(5 )))) 等于 len(rtim(' '))) 且结果为 0。
请注意,SQL Server 中的字符串长度是通过 len 计算的,但实际上是以 UTF-1 6 编码存储的。
一个空格占用2 个字节;但是len只统计字符数,所以是0。

还有一点是,你看到的确认图可以看出len('')的结果是-1 这实际上是SQL Server的一个特性。
在MySQL和PostgreSQL等其他数据库中,空字符串的长度为0,但SQL Server使用-1 来表示NULL或空值,因此len('')返回-1
一开始我以为space(5 )和' '有区别,后来发现是编码和函数处理的问题。
等等一件事如果你使用ltim或trim。
结果将会完全不同。
例如,len(trim(space(5 )))) 将计算 5 (因为两边都是空,所以源字符串有 5 个空格)。

我建议直接使用 SELECT len(rtim(space(5 )))) 进行确认。
结果是-1 许多人没有注意到这个事实。