删除复杂名称中的空格

时间:2016-01-08 13:31:28

标签: sql sql-server-2008

我正在尝试插入像Juan Carlos这样的复杂名称,但我想删除JuanCarlos之间的所有空格。让我们使用#作为空间来更好地查看空间。

插入时我已经尝试了RTRIM(LTRIM(@Name))但似乎没有用,我尝试插入###Jua#Car###但是当我选择带DATALENGTH([Name])的字段时,我得到了{{1}的长度}。

当我看到该字符串时,我可以计算14个字符,而不是13

1。我无法计算的角色是什么?
2。如果LTRIM和RTRIM不起作用,我如何才能14删除所有空格?

使用更多信息进行更新:

列数据类型为nvarchar(100)
我刚试过REPLACE([姓名],'''')而我得到的长度是12

2 个答案:

答案 0 :(得分:1)

您可以使用稍微复杂的方法修剪非字母数字字符:

length

答案 1 :(得分:0)

尝试在下面使用,单独选择FirstName,LastName并用空格连接它们:

DECLARE @FullName VARCHAR(MAX) = '  Juan Carlos  '

SELECT LEN(SUBSTRING(LTRIM(RTRIM(@FullName)), 1, CHARINDEX(' ', LTRIM(RTRIM(@FullName))) - 1) + ' ' +
       REVERSE(SUBSTRING(REVERSE(LTRIM(RTRIM(@FullName))), 1, 
               CHARINDEX(' ', REVERSE(LTRIM(RTRIM(@FullName)))) - 1) )) AS [Len]

返回len = 11