SQL - 选择名称,无论是大写还是小写字母

时间:2016-04-07 13:36:37

标签: sql database oracle plsql

我尝试用“施密特”选择所有名字。但是有些名字是小写的,有些是大写的。

我试试这个:

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

但是当这个词中的一个字母是大写字母(例如SchmidT)时,该陈述没有找到这个。 知道有人解决这个问题的简单方法吗?

3 个答案:

答案 0 :(得分:5)

我猜你使用的是Oracle而不是MySQL,因为它默认情况下是敏感的。只需使用lower()Select * from Account where lower(name) like '%chmidt%'; 函数:

s

如果你想要像"施密特"这样的名字,我会添加一个Select a.* from Account a where lower(a.name) like '%schmidt%';

hammerschmidt

注意:这会找到=和类似名称。如果您想要完全匹配,请删除通配符或使用Private Sub comboBox_Change() fieldToEdit.Value = selectedValue.Value End Sub

答案 1 :(得分:0)

进行小写比较:

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

答案 2 :(得分:0)

如果你只是在寻找施密特,我的偏好(为了便于阅读)是既不使用LOWER也不使用UPPER,而是使用INITCAP - 和相等,而不是LIKE运算符。像这样:

select ...    where initcap(name) = 'Schmidt'