LIKE谓词

  T-SQL提供了一个LIKE谓词,用于检查字符串是否能够匹配指定的模式。在前面介绍的PATINDEX函数中已经使用了类似的模式。接下来的这节将介绍模式中使用的通配符(wildcard),并演示它们的用法。

%(百分号)通配符

  百分号代表任意长度的字符串,包括空字符串。例如,以下查询返回姓氏(last name)以字符'D'开头的所有雇员:

1 SELECT empid,lastname
2   FROM HR.Employees
3   WHERE lastname LIKE N ' D% ' ;

_(下划线)通配符

  下划线代表任意单个字符。例如,以下查询返回姓氏(last name)第二个字符为'e'的所有雇员:

1 SELECT empid,lastname
2 FROM HR.Employees
3 WHERE lastname LIKE N ' _e% ' ;

[<字符列>]通配符

  方括号中包含一列字符(例如'[ABC]'),表示必须匹配指定字符中的一个字符。例如,以下查询返回姓氏(last name)以字符'A'、'B'或'C'开头的所有雇员:

1 SELECT empid,lastname
2 FROM HR.Employees
3 WHERE lastname LIKE N ' [ABC]% ' ;

[<字符>-<字符>]通配符

  方括号中包含一个字符范围(例如'[A-E]'),表示必须匹配指定范围内的一个字符。例如,以下查询返回姓氏(last name)以字符'A'到'E'开头的所有雇员:

1 SELECT empid,lastname
2 FROM HR.Employees
3 WHERE lastname LIKE N ' [A-E]% ' ;

[^<字符列或范围>]通配符

  方括号中包含一个插入符(^),后面跟着一个字符列或范围(例如'[^A-E]'),表示不属于指定字符列或范围内的任意单个字符。例如,以下查询返回姓氏(last name)不是以字符'A'到'E'开头的所有雇员:

1 SELECT empid,lastname
2 FROM HR.Employees
3 WHERE lastname LIKE N ' [^A-E]% ' ;

ESCAPE(转义)字符

  如果想搜索包含特殊通配符的字符串(例如'%'、'_'、'['、']'),则必须使用转义字符。指定一个确保不会在数据中出现的字符作为转义字符,把它放在待查找的字符串前面,并紧接着模式字符串,在ESCAPE关键字后面指定该转义字符。例如,要检查lastname的列中是否包含下划线,可以使用下列代码进行查询:

1 SELECT empid,lastname
2 FROM HR.Employees
3 WHERE lastname LIKE ' %!_% ' ESCAPE ' ! ' ;

  另外,对于通配符'%'、'_'、和'['(左方括号),可以把它们放在方括号内,而不必使用转义字符。例如,除了使用lastname LIKE '%!_%' ESCAPE '!'以外,还可以使用lastname LIKE '%[_]%'。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值