【发布时间】:2012-02-24 09:27:33
【问题描述】:
Description of LEN() function on MSDN : 返回指定字符串表达式的字符数,不包括尾随空格。
为什么 LEN() 函数设计成这样工作?这种行为解决了什么问题?
相关:
【问题讨论】:
标签: tsql
Description of LEN() function on MSDN : 返回指定字符串表达式的字符数,不包括尾随空格。
为什么 LEN() 函数设计成这样工作?这种行为解决了什么问题?
相关:
【问题讨论】:
标签: tsql
由于数据类型长度,它修复了字符串的自动填充。考虑以下几点:
DECLARE @Test CHAR(10), @Test2 CHAR(10)
SET @Test = 'test'
SET @Test2 = 'Test2'
SELECT LEN(@Test), LEN(@Test + '_') - 1, LEN(@Test2), LEN(@Test2 + '_') - 1
这将分别返回 4、10、5 和 10。即使@Test 没有使用尾随空格,它仍然保持其长度为 10。如果 LEN 没有修剪尾随空格,那么 LEN(@test) 和 LEN(@Test2) 将是相同的。人们通常会想知道有意义数据的长度,而不是自动填充的长度,因此 LEN 会删除尾随空格。有一些解决方法/替代方法不是必需的行为。
【讨论】:
像
这样的非可变字段中的空格填充CREATE TABLE tblSomething ( variable_length varchar(20), non_var_lenght char(10) );
【讨论】: