在Where中對列使用函數,將導致其不可索引


在Sql語句的Select部分對字段編寫標量函數是完全可以的,但是下面代碼:

select EmpNo,LastName
from Emp
where YEAR(HireDate)=2005

應當寫為

select EmpNo,LastName
from Emp
where HireDate between '' and ''

如上所示重寫這個語句后,DB2可以選擇使用HireDate上的索引(如果存在這樣一個索引)。但是如果在使用了Year函數,DB2就無法使用該列的索引了。

雖然可以使用函數或表達式創建表達式索引,即便如此,仍然要盡可能像上面那樣重新編寫查詢。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM