2015-08-22 19 views
0

我正在練習通配符Character.And我開始瞭解'^'字符,它有助於查找不包含特定字母的字使用通配符。如何刪除SQL Server中特定位置的字母

我的查詢找到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和未答:

SELECT * 
FROM HumanResources.vEmployee 
WHERE FirstName LIKE 'D[^Y][^A]%' 

作爲一個說明:表達式LIKE 'D[^^A]返回所有的名字,其中第一個字符是「d」第二個既不是「^」也不是「A」。克拉只有在[前有特殊含義。

0

您可以使用正則表達式

WHERE FirstName LIKE 'D[A-Z][^A]%' 
相關問題