我嘗試使用「Schmidt」選擇所有名稱。但有些名字是小寫字母和大寫字母。SQL - 選擇名稱,不管大寫還是小寫字母
我試試這個:
Select * from Account
where name like '%chmidt%'
or name like '%CHMIDT%'
但當字裏面一個字母是大寫(e.g SCHMIDT),沒有找到該聲明。 知道某人一個簡單的方法來解決這個問題?
我嘗試使用「Schmidt」選擇所有名稱。但有些名字是小寫字母和大寫字母。SQL - 選擇名稱,不管大寫還是小寫字母
我試試這個:
Select * from Account
where name like '%chmidt%'
or name like '%CHMIDT%'
但當字裏面一個字母是大寫(e.g SCHMIDT),沒有找到該聲明。 知道某人一個簡單的方法來解決這個問題?
我猜您正在使用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
和相似的名稱。如果您想要完全匹配,請刪除通配符或使用=
。
這是最完整和正確的答案,應該被接受爲這樣。 – SubliemeSiem
做一個較低的情況相比:
Select * from Account
where lower(name) like '%chmidt%'
如果您只是在尋找施密特,我的偏好(爲了可讀性)既不使用LOWER也不使用UPPER,而是使用INITCAP - 並且相等,而不是LIKE操作符。像這樣:
select ... where initcap(name) = 'Schmidt'
我將數據庫標記切換到「oracle」(刪除MySQL),因爲該行爲比MySQL更適合Oracle。 –
是的,這不適用於T-SQL。 – GibralterTop