Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 查询处理 » 查询优化与执行 » 语义查询转换

 

排除不必要的大小写转换

缺省情况下,SQL Anywhere 数据库支持不区分大小写的字符串比较。有时,优化程序可能会遇到这样的查询:用户使用 UPPER、UCASE、LOWER 或 LCASE 内置函数在这些查询中显式强制进行不必要的文本转换。如果数据库的归类序列允许,SQL Anywhere 将自动排除这种不必要的转换。在谓语中排除这些大小写转换还有一个好处,就是将这些谓语的其中一部分转换为可优化搜索谓语,这种谓语可用于相应表的索引检索。

示例

请看以下查询:

SELECT *
FROM Customers
WHERE UPPER(Surname) = 'SMITH';

对于不区分大小写的数据库,该查询将在内部重写为如下查询,以便优化程序可以考虑使用 Customers.Surname 上的索引:

SELECT *
FROM Customers
WHERE Surname = 'SMITH';