如何在SQL Server中匹配以AB或CD开头的ComputerName字段?
解决SQL Server中匹配以AB/CD开头的ComputerName问题
你之前的写法错误是因为SQL Server的LIKE通配符规则和正则表达式不同:方括号[]仅用于匹配单个字符的集合,比如[AB]%是匹配以A或B开头的记录,而非AB或CD开头。
要匹配以AB或CD开头的字段,有两种常用的正确写法:
方法1:使用OR连接多个LIKE条件
这是最直观的写法,直接指定两个前缀的匹配规则:
SELECT ComputerName FROM TableName WHERE ComputerName LIKE 'AB%' OR ComputerName LIKE 'CD%'
方法2:使用LEFT函数结合IN条件
如果前缀长度固定(都是2个字符),可以用LEFT截取前两位,再判断是否在指定的前缀集合中:
SELECT ComputerName FROM TableName WHERE LEFT(ComputerName, 2) IN ('AB', 'CD')
补充说明
- 注意SQL Server的LIKE默认是不区分大小写的(取决于数据库的排序规则),如果需要严格区分大小写,可以加上
COLLATE子句,比如:
SELECT ComputerName FROM TableName WHERE ComputerName COLLATE SQL_Latin1_General_CP1_CS_AS LIKE 'AB%' OR ComputerName COLLATE SQL_Latin1_General_CP1_CS_AS LIKE 'CD%'
内容的提问来源于stack exchange,提问作者Ron
相关产品推荐
相关产品推荐

