SQL LOWER(或UPPER)vs Like

时间:2010-12-15 23:57:33

标签: sql tsql stored-procedures

我有一个不会变得非常大的表,其中包含客户帐户的名称用户的别名。我正在从生产中导入这些信息,以便运行一些报告。

为了帮助管理表内容,我添加了一个简单的AddUser存储过程,首先我要检查表中是否已存在客户端帐户/别名组合。

由于我希望此检查不区分大小写,因此我在比较值时考虑使用LOWERlike

可能在这种情况下,我不会在性能方面看到任何重大差异,但它让我想知道在做这类事情时是否有最好的做法。

非常感谢!

4 个答案:

答案 0 :(得分:2)

LIKE比使用LOWER的转化要快得多,尤其是名称越长。

答案 1 :(得分:2)

数据库实例是否设置为区分大小写的字符串排序规则?如果没有,那么所有这些都不是必需的,因为所有比较都不区分大小写。

见这里:SQL server ignore case in a where expression

答案 2 :(得分:2)

lower(name) = 'Somename'不会使用索引,而name like 'some%'可能会使用。

答案 3 :(得分:1)

如果您使用的是SQL Server,则可以使用常规比较(=)。除非您更改默认设置,否则SQL Server字符串比较不区分大小写。