我正在从excel VBA中填充ComboBox
的SQL Server(2008 R2)存储过程生成记录集。
如果我运行一个查询来获取从表中返回的每个值的长度,它就像这样:
SELECT [outcome], LEN([outcome]) AS [Length] FROM [dbo].[crl_outcome] GROUP BY [outcome]
执行存储过程时,我将记录集分配给变量数组,例如:
varList = oRS.GetRows()
MsgBox Len(varList(1, 0))
MsgBox
返回上面SQL语句中显示的字段,表中长度为21个字符,长度为128个字符,空格构成剩余的107个字符。
正如您所看到的,没有对值进行格式化,但表中的字段被指定为nchar(128)
。
有谁知道为什么每个结果都附加了空格?
答案 0 :(得分:1)
我相信nchar的本质。请尝试使用nvarchar,因为它不会用空格填充数据。这是另一个有关更多详细信息,请参阅此previous SO discussion。
正如您所提到的,您可以使用TRIM
函数从现有字符串中删除尾随空格。