sqlserver通配符转义
如果想查找“_cs”结尾的的账户
select * from [user] where loginname like '%_cs'是不行的,_ 被认为是任意的字符。
sqlserver中包含以下通配符:
| 通配符 | 含义 |
|---|---|
| % | 包含零个或更多字符的任意字符串。 |
| _ | 任何单个字符。 |
| [ ] | 指定范围(例如 [a-f])或集合(例如 [abcdef])内的任何单个字符。 |
| [^] | 不在指定范围(例如 [^a - f])或集合(例如 [^abcdef])内的任何单个字符 |
所以需要转义字符,有两种写法:
select * from [user] where loginname like '%[_]cs'
select * from [user] where loginname like '%/_cs' escape'/'
select * from [user] where loginname like '%/_cs' escape'/'
使用“[]”转义
| 符号 | 含义 |
|---|---|
| LIKE '5[%]' | 5% |
| LIKE '5%' | 5 后跟 0 个或更多字符的字符串 |
| LIKE '[_]n' | _n |
| LIKE '_n' | an, in, on (and so on) |
| LIKE '[a-cdf]' | a, b, c, d, or f |
| LIKE '[-acdf]' | -, a, c, d, or f |
| LIKE '[ [ ]' | [ |
| LIKE ']' | ] |
使用 ESCAPE 关键字定义转义符
在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。
例如,要搜索在任意位置包含字符串 5% 的字符串,请使用:
WHERE ColumnA LIKE '%5/%%' ESCAPE '/'例子:
查找VersionName 中包含2%字符串的数据
select * from T_DataVersion where VersionName like '%2[%]%'
select * from T_DataVersion where VersionName like '%2/%%' ESCAPE '/'
烟花会谢,笙歌会停,方显故事尾声的动听
浙公网安备 33010602011771号