2016-04-07 84 views
1

我嘗試使用「Schmidt」選擇所有名稱。但有些名字是小寫字母和大寫字母。SQL - 選擇名稱,不管大寫還是小寫字母

我試試這個:

Select * from Account 
where name like '%chmidt%' 
or name like '%CHMIDT%' 

但當字裏面一個字母是大寫(e.g SCHMIDT),沒有找到該聲明。 知道某人一個簡單的方法來解決這個問題?

+0

我將數據庫標記切換到「oracle」(刪除MySQL),因爲該行爲比MySQL更適合Oracle。 –

+0

是的,這不適用於T-SQL。 – GibralterTop

回答

4

我猜您正在使用Oracle和MySQL的沒有,因爲它是區分默認靈敏。只需使用upper()lower()功能:

Select a.* 
from Account a 
where lower(a.name) like '%schmidt%'; 

注:

Select * 
from Account 
where lower(name) like '%chmidt%'; 

,如果你想要一個像「施密特」的名字我想補充一個s這將找到hammerschmidt和相似的名稱。如果您想要完全匹配,請刪除通配符或使用=

+0

這是最完整和正確的答案,應該被接受爲這樣。 – SubliemeSiem

0

做一個較低的情況相比:

Select * from Account 
where lower(name) like '%chmidt%' 
0

如果您只是在尋找施密特,我的偏好(爲了可讀性)既不使用LOWER也不使用UPPER,而是使用INITCAP - 並且相等,而不是LIKE操作符。像這樣:

select ... where initcap(name) = 'Schmidt' 
相關問題