2014-12-13 189 views
2

我有一個簡單的問題,但我無法找到答案。在SQL WHERE子句中哪個更好?SQL WHERE條款條件評估

TO_CHAR (DAT, 'YYYYMMDD') BETWEEN '20080101' AND '20131231' 

DAT BETWEEN TO_DATE('20080101','YYYYMMDD') AND TO_DATE('20131231','YYYYMMDD') 

僅計算一次,然後在條件值表中的測試的每一行,還是SQL引擎重新計算每一次?

謝謝!

回答

1

任何涉及常量和文字的參數只會被評估一次。然而,第二個更好 - 它允許您索引dat列,然後使用此索引來提高性能,而第二個索引不允許使用索引。

+0

是的,這就是我的想法!謝謝! – user2346329 2014-12-13 15:54:40