我在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*/
但是有没有特定的方法可以找到文本字段中的“制表符”空间?
问候!
答案 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