查找特定的特殊字符 SQL Server 2008 R2

Look for specific special characters SQL Server 2008 R2

我需要在描述字段中查找对以下特殊字符的提及 string/rows。其中一些很简单,但有些我不知道如何查找:

Special characters:  < > { } [ ] " ' * = @ ~ | <Tab> (tab key) <Enter> (extra line (carriage return))

我目前拥有的:

select * from
table
where [Account description] like '[<>{}[]*=@~|]'

不确定如何识别以下特殊字符:

" (double quote)
' (single quote)
<Tab> (tab key) 
<Enter> (extra line (carriage return))

也许你可以尝试这样的事情:

select * from table
where [Account description] like '[<>{}[]*=@~|]' 
and [Account description] like '%''%'
and [Account description] like '%'+CAST(X'09' AS TEXT)+'%'
and ([Account description] like '%'+char(13)+'%'
or [Account description] like '%'+char(10)+'%)

但我认为会很慢。

听起来您想要所有非字母数字字符?如果是这样,您可以使用

declare @table table (id int identity (1,1), column1 nvarchar(64))
insert into @table
values
('<'),
('>'),
('{'),
('}'),
('['),
(']'),
('"'),
(''''),
('*'),
('='),
('@'),
('~'),
('|'),
('a' + char(10)),
('b' + char(13)),
('c' + char(9)),
('a'),
('A'),
('1')

select *
from @table
where [Account description] like '%[^0-9a-zA-Z]%'

否则,您需要明确列出它们并为特殊情况使用转义值...

select * 
from @table 
where column1 like '%[<>{}![!]"''''*=@~|]%' ESCAPE '!'
or column1 like '%' + char(10) + '%'
or column1 like '%' + char(9) + '%'
or column1 like '%' + char(13) + '%'