我正在练习通配符Character.And我开始了解'^'字符,这有助于找到一个不包含使用通配符的特定字母的单词。
我的查询是从vEmployee找到一个名字,该名字的名字的第二个字母中不包含字母“Y”,其名称以“D”开头......
USE AdventureWorks2012
SELECT *
FROM HumanResources.vEmployee
WHERE FirstName LIKE 'D[^Y]%'
BusinessEntityID Title FirstName MiddleName LastName
8 NULL Diane L Margheim
16 NULL David M Bradley
52 NULL Doris M Hartwig
53 NULL Diane R Glimp
56 NULL Denise H Smith
61 NULL Diane H Tibbott
70 NULL David J Ortiz
90 NULL Danielle C Tiedt
118 NULL Don L Hall
127 NULL David P Hamilton
但我的问题是我们怎样才能找到第三个字母不包含'A'的名字。 我尝试了这样的查询
SELECT *
FROM HumanResources.vEmployee
WHERE FirstName LIKE 'D[^^A]%'
但它没有给我一个正确的答案,也没有显示任何错误。
那么,答案是什么?
答案 0 :(得分:0)
您可以使用_
通配符。它只匹配一个字母:
SELECT *
FROM HumanResources.vEmployee
WHERE FirstName LIKE 'D_[^A]%'
或者,如果你不想要Y而不是A:
SELECT *
FROM HumanResources.vEmployee
WHERE FirstName LIKE 'D[^Y][^A]%'
作为注释:表达式LIKE 'D[^^A]
返回第一个字符为“D”且第二个字符既不是“^”也不是“A”的所有名称。克拉在[
前面只有特殊含义。
答案 1 :(得分:0)
您可以使用正则表达式
WHERE FirstName LIKE 'D[A-Z][^A]%'