生成包含字符串值条件的查询时,请将通配符与以下运算符一起使用:
使用这些条件运算符时,可以使用某些字符来表示搜索条件中的通配符。 下表描述了可以使用的字符。
| 字符 | Description | T-SQL 文档和示例 |
|---|---|---|
% |
匹配包含零个或多个字符的任意字符串。 可以将此通配符用作前缀或后缀。 |
% 通配符:要匹配的字符 |
_ |
匹配字符串比较操作中涉及模式匹配的任何单个字符。 |
_ 通配符:匹配一个字符 |
[] |
匹配在方括号之间指定的范围或集中的任何单个字符。 |
[ ] 通配符:要匹配的字符 |
[^] |
匹配不在区域或方括号之间指定的任何单个字符。 |
[^] 通配符:不匹配的字符 |
搜索包含通配符的字符串
可以将通配符模式匹配字符作为文字字符使用。 若要将通配符作为文字字符使用,请将通配符放在方括号中。 有关详细信息,请参阅 将通配符用作文本。
不要使用前导通配符
使用带隐式前导通配符的条件运算符(例如 ends-with,或显式前导通配符)的查询效率较低。 在某些情况下,这些通配符可能会导致整个组织的性能不佳。 有关详细信息,请参见:
这些反模式引入了性能问题,因为查询优化器无法优化查询。
请勿在使用like、begins-with、not-begin-with或ends-withnot-end-with的表达式中使用尾随通配符。 下面是尾随通配符的一些示例:
| 错误示例 |
|---|
<condition attribute='name' operator='like' value='%value' /> |
<condition attribute='name' operator='begins-with' value='%value' /> |
<condition attribute='name' operator='not-begins-with' value='%value' /> |
<condition attribute='name' operator='ends-with' value='value' /> |
<condition attribute='name' operator='not-ends-with' value='value' /> |