我在程序代码的所有部分中使用了LEN()函数,发现返回值是错误的。因此,我使用了DATALENGTH()函数,并看到它返回正确的值。我的问题解决了,但我想知道为什么这两个函数是不同的!?
PRINT LEN(' ') -- answer is 0
PRINT DATALENGTH(' ') -- answer is 1发布于 2019-02-20 10:40:29
文件解释了这个问题。
返回指定字符串表达式的字符数,不包括尾随空格.。
重点雷
此函数返回用于表示任何表达式的字节数。
由于具有单个(尾随)空间的值,它的长度为0,但是空间仍然被存储;对于varchar,每个字符的大小为1字节。
发布于 2019-02-20 10:45:54
LEN 函数返回指定字符串表达式的字符数,不包括尾随空格,因此返回0。
而DATALENGTH则包括尾随空白。
如果在计算长度时要传递两个空格。LEN函数仍将返回0,而DATALENGTH函数将返回2。
发布于 2019-02-20 10:47:26
LEN用于返回字符长度,如果为空白,则将其计算为0。你可以说LEN将修剪字符串以供计算。
DATALENGTH用于计算内存空间(字节)。
找到这个链接https://database.guide/len-vs-datalength-in-sql-server/
https://stackoverflow.com/questions/54784310
复制相似问题