首页 > 解决方案 > 在 Where 子句中使用时,Upper Function 和 Lower Function 有什么区别?

问题描述

我理解您何时键入,例如:

SELECT * from customers
WHERE UPPER(product) like 'BANK ACCOUNT';

所有记录都以银行帐户返回,大写和小写,但是当我键入时返回相同的结果集:

SELECT * from customers
WHERE lower(product) like 'bank account';

提前感谢您的帮助!

标签: postgresql

解决方案


从逻辑上讲,您的两个查询都在做同样的事情,即product全部大写/小写,然后与全部大写/小写的文字进行比较。请注意,Postgres 有一个不区分大小写的正则表达式,您可以在这里使用它:

SELECT *
FROM customers
WHERE product ~* 'bank account';

或者,我们可以使用ILIKE

SELECT *
FROM customers
WHERE product ILIKE '%bank account%';

推荐阅读