sqlrver通配符使⽤-特殊符号处理-escape
SQL 通配符
在搜索数据库中的数据时,SQL 通配符可以替代⼀个或多个字符。
SQL 通配符必须与 LIKE 运算符⼀起使⽤,=操作是没有的。
通配符描述
%替代⼀个或多个字符(相当于正则表达式中的 * )
_仅替代⼀个字符(相当于正则表达式中的 ? )
[charlist]字符列中的任何单⼀字符(事实上只有左⽅括号⽤于转义,右⽅括号使⽤最近优先原则匹配最近
的左⽅括号)
不在字符列中的任何单⼀字符⽤于排除⼀些字符进⾏匹配(这个与正则表达式中的⼀样)
[^charlist]
或者
[!charlist]
原始的表 (⽤在例⼦中的):
Persons 表:
IdLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon
2BushGeorgeFifth AvenueNew York
3CarterThomasChangan StreetBeijing
使⽤ % 通配符
例⼦ 1
现在,我们希望从上⾯的 "Persons" 表中选取居住在以 "Ne" 开始的城市⾥的⼈:
我们可以使⽤下⾯的 SELECT 语句:
SELECT * FROM Persons
WHERE City LIKE 'Ne%'
结果集:
IdLastNameFirstNameAddressCity
2BushGeorgeFifth AvenueNew York
例⼦ 2
接下来,我们希望从 "Persons" 表中选取居住在包含 "lond" 的城市⾥的⼈:
我们可以使⽤下⾯的 SELECT 语句:
SELECT * FROM Persons
WHERE City LIKE '%lond%'
结果集:
IdLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon
使⽤ _ 通配符
例⼦ 1
现在,我们希望从上⾯的 "Persons" 表中选取名字的第⼀个字符之后是 "eorge" 的⼈:
我们可以使⽤下⾯的 SELECT 语句:
SELECT * FROM Persons
WHERE FirstName LIKE '_eorge'
结果集:
IdLastNameFirstNameAddressCity
2BushGeorgeFifth AvenueNew York
例⼦ 2
接下来,我们希望从 "Persons" 表中选取的这条记录的姓⽒以 "C" 开头,然后是⼀个任意字符,然后
是 "r",然后是任意字符,然后是 "er":
我们可以使⽤下⾯的 SELECT 语句:
SELECT * FROM Persons
WHERE LastName LIKE 'C_r_er'
结果集:
IdLastNameFirstNameAddressCity
3CarterThomasChangan StreetBeijing
使⽤ [charlist] 通配符
例⼦ 1
现在,我们希望从上⾯的 "Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的⼈:
我们可以使⽤下⾯的 SELECT 语句:
SELECT * FROM Persons
WHERE City LIKE '[ALN]%'
结果集:
IdLastNameFirstNameAddressCity
1AdamsJohnOxford StreetLondon
2BushGeorgeFifth AvenueNew York
例⼦ 2
现在,我们希望从上⾯的 "Persons" 表中选取居住的城市不以不以 "A" 或 "L" 或 "N" 开头的⼈:
我们可以使⽤下⾯的 SELECT 语句:
SELECT * FROM Persons
WHERE City LIKE '[!ALN]%'
结果集:
IdLastNameFirstNameAddressCity
3CarterThomasChangan StreetBeijing
通配符特殊⽤法:Escape
lect 'asjldfj%%abc%asdfjklj'
lect * from testhxj where name like '%/%abc/%%' escape ''(这⾥表⽰是通配符,这样匹配的数据是包含%abc%的数据,如果不
⽤escape,就⽆法将%匹配为字符串)
本文发布于:2023-11-06 01:03:23,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/fan/89/1138010.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |