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

标签 sql-server sql-server-2008-r2 special-characters

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

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))

最佳答案

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

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) + '%'

关于sql-server - 查找特定的特殊字符 SQL Server 2008 R2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47289298/

相关文章:

sql-server - 为 SQL Server 企业管理器编写一个插件/表单

sql-server - 组合 2 个日期字段以进行条件拆分

sql - 在SQL Server中,为什么NULL不等于空字符串AND不等于空字符串?

c# - 在 C# for SQL 中使用多个插入语句时如何使用 ExecuteNonQuery 获取受影响的记录

sql - T-SQL 使用变量从 xml 中检索 sql 属性

sql-server - Drop 过程语句的死锁

sql - TCP 提供程序 : The semaphore timeout period has expired

javascript - 使用 JavaScript 插入 HTML 实体的问题

qt - 如何检查 QString 是否仅包含 "invisible"个字符?

c - 在 C 中打印特殊字符时出错。问题是 %c vs %s