在SQL上的文本字段中查找“制表符”空间

时间:2017-03-30 16:32:00

标签: sql sql-server tsql sql-server-2012

我在SQL Server 2012中有几个tex字段(varchar,nvarchar,....)。

这些字段由来自不同来源的“用户”更新。有时,他们会粘贴一个包含“制表符”空间的文本。

显然我可以使用以下方法找到空格:

SELECT * FROM table
WHERE field LIKE '%   %' /*3 spaces*/
OR field LIKE '%    %' /*4 spaces*/
OR field LIKE '%     %' /*5 spaces*/
OR field LIKE '%      %' /*6 spaces*/

但是有没有特定的方法可以找到文本字段中的“制表符”空间?

问候!

2 个答案:

答案 0 :(得分:2)

万一你希望摆脱那些额外的空间,这是几周前戈登演示的一个小技巧。 它将处理任意数量的重复空格。

Declare @YourTable table (col varchar(100))
Insert Into @YourTable values
('Some    text    with extra spaces')

Select *
      ,Trimmed = replace(replace(replace(col,' ','><'),'<>',''),'><',' ')
 From  @YourTable

返回

col                                 Trimmed
Some    text    with extra spaces   Some text with extra spaces
  

编辑 - 更新

Update YourTable
   set col = replace(replace(replace(col,' ','><'),'<>',''),'><',' ')
 Where col like '%  %'

无需搜索3+空格,搜索双空格就可以了解

答案 1 :(得分:1)

要找到它们,您可以将charindex()char(9)一起使用。

select * 
from t
where charindex(char(9),col)>0;

rextester演示:http://rextester.com/OOX36348