2014-01-21 56 views
0

如果以前曾询问过此类型的问题,我很抱歉。但是,到目前为止,我还没有找到任何正确的答案。我试图删除我行中的任何“白色字符”,但无法工作。删除“白色字符”

我有一张桌子上有很多“白色字符”。我说“白色字符”因为我不确定它是空间字符。我证明了这一点:

SELECT ASCII(RIGHT(myfield,1)) as expre1 FROM mytable 

它给了我各种ASCII字符显示为SPACE。我确定键入脚本这样的东西不起作用。

SELECT replace(myfield, ' ', '') as expr1 FROM mytable 
SELECT LTRIM(RTRIM(myfield)) as expr1 FROM mytable 

任何想法如何删除这样的“白色字符”? 谢谢。

+0

什么数据类型是myfield? – NickyvV

+0

数据类型为varchar(50) –

+0

您正在查找空格字符,其中至少包括空格,制表符,回车符,换行符,换页字符。我认为Unicode(nvarchar)字段具有更多的空白字符,例如不间断空格。 –

回答

0

这工作,Fiddle Here

 SELECT 
      [C] AS [data()] 
     FROM (
      SELECT 
        substring([Test].[Data], v.Number+1, 1) [C] 
       FROM (
        SELECT [Data] FROM [Test]) [Test] 
        JOIN 
         master..spt_values [v] 
          ON [v].Number < LEN([Test].[Data]) 
        WHERE 
         [v].type = 'P') [Test] 
       WHERE 
        len(ltrim([Test].[C])) > 0 
     FOR XML PATH('') 

但TSQL是工作一个非常糟糕的工具。

+0

谢谢。我很感激。 –