【发布时间】:2010-10-17 06:56:06
【问题描述】:
什么是 SQL 的所有特殊字符的完整列表(我对 SQL Server 感兴趣,但其他的也不错)LIKE 子句?
例如
SELECT Name FROM Person WHERE Name LIKE '%Jon%'
- %
- _
- [说明符] 例如[a-z]
- [^说明符]
- ESCAPE 子句%30!%%'ESCAPE'!'将评估 30% 为 true
- ' 字符需要使用 ' 进行转义,例如他们变成了他们
-
%- 零个或多个字符的任意字符串。 -
_- 任意单个字符 - ESCAPE 子句%30!%%'ESCAPE'!'将评估 30% 为 true
-
%- 零个或多个字符的任意字符串。 -
_- 任意单个字符 - ESCAPE 子句%30!%%'ESCAPE'!'将评估 30% 为 true
Sybase
- %
- _
- [说明符] 例如[a-z]
- [^说明符]
-
%- 零个或多个字符的任意字符串。 -
_- 任意单个字符Reference Guide here [PDF]
-
%- 零个或多个字符的任意字符串。 -
_- 任意单个字符 - ESCAPE 子句%30!%%'ESCAPE'!'将评估 30% 为 true
- %
- _
- ESCAPE 字符仅在指定时。
PostgreSQL 也有 SIMILAR TO 运算符,它添加了以下内容:
[specifier][^specifier]-
|- 两种选择中的一种 -
*- 前一项重复零次或多次。 -
+- 将前一项重复一次或多次。 -
()- 将项目组合在一起
我们的想法是让这个社区 Wiki 成为一个“一站式商店”。
【问题讨论】:
-
可能值得一提的是 ESCAPE 子句。 SQL Server、Oracle 和 MySQL 都支持这一点。不了解 Sybase。
-
我现在在想 ESCAPE 子句是标准 SQL,所以可能只需要提及一次
-
我自己不知道它在所有列出的服务器(以及以后可能添加的任何服务器)中都实现了,所以我不愿意将它拉到“所有支持”部分。如果您确信它们都得到支持,请继续。
-
别忘了转义转义字符本身...
-
两个厘米。首先,Microsoft SQL 最初来自 Sybase,因此相似之处并非巧合。二、单引号转义不限于
LIKE;例如WHERE familyname = 'O''Toole'。第三,SIMILAR TO运算符引入了一种混合正则表达式,它有自己的特性(以及更多特殊字符),因此可能不应该包含在此处。我猜这可以赚 3 cmets,但没人会想到西班牙宗教裁判所。
标签: sql special-characters sql-like