我尝试使用“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