SQL LIKE子句的特殊字符列表

LIKE子句的SQL特殊字符的完整列表是什么(我对SQL Server感兴趣,但其他字符也可以)?


例如


SELECT Name FROM Person WHERE Name LIKE '%Jon%'

SQL Server:


_

[说明者]例如[az]

[^说明符]

ESCAPE子句,例如%30!%%'ESCAPE'!' 将30%视为正确

'字符需要用'转义,例如

MySQL:


% -零个或多个字符的任何字符串。

_ -任何单个字符

ESCAPE子句,例如%30!%%'ESCAPE'!' 将30%视为正确

甲骨文:


% -零个或多个字符的任何字符串。

_ -任何单个字符

ESCAPE子句,例如%30!%%'ESCAPE'!' 将30%视为正确

Sybase公司


_

[说明者]例如[az]

[^说明符]

进展:


% -零个或多个字符的任何字符串。

_ -任何单个字符


参考指南在这里 [PDF]


PostgreSQL:


% -零个或多个字符的任何字符串。

_ -任何单个字符

ESCAPE子句,例如%30!%%'ESCAPE'!' 将30%视为正确

ANSI SQL92:


_

仅在指定时使用ESCAPE字符。

PostgreSQL还具有SIMILAR TO添加以下内容的运算符:


[specifier]

[^specifier]

| -两种选择之一

* -重复上一个项目零次或多次。

+ -重复前一项或多次。

() -将项目分组在一起

这样做的目的是使它成为一个社区Wiki,可以使其成为“一站式商店”。


神不在的星期二
浏览 851回答 3
3回答

烙印99

ANSI SQL92:%_仅当指定时才使用ESCAPE字符。令人失望的是,许多数据库不遵循标准规则并添加额外的字符,或者在缺少ESCAPE时默认使用默认值'\'来错误地启用它。好像我们对'\'还没有足够的麻烦!在这里编写与DBMS无关的代码是不可能的,因为您不知道必须转义哪些字符,并且标准说您无法转义不需要转义的内容。(请参阅第8.5节/一般规则/3.a.ii。)

有只小跳蛙

Sybase:%              : Matches any string of zero or more characters._              : Matches a single character.[specifier]    : Brackets enclose ranges or sets, such as [a-f]                  or [abcdef].Specifier  can take two forms:                 rangespec1-rangespec2:                    rangespec1 indicates the start of a range of characters.                   - is a special character, indicating a range.                   rangespec2 indicates the end of a range of characters.                 set:                   can be composed of any discrete set of values, in any                   order, such as [a2bR].The range [a-f], and the                   sets [abcdef] and [fcbdae] return the same                   set of values.                 Specifiers are case-sensitive.[^specifier]    : A caret (^) preceding a specifier indicates                   non-inclusion. [^a-f] means "not in the range                   a-f"; [^a2bR] means "not a, 2, b, or R."
打开App,查看更多内容
随时随地看视频慕课网APP