我期待在與查詢,爲where子句,DateDiff(month, table1.dateReported, table2.dateTransDate) <= 6
,其中dateReported和dateTransdate在不同的表的一部分。我最近讀到在where子句中使用SQL函數會導致性能問題。我怎樣才能改變這個不使用datediff?在SQL Server消除DateDiff的where子句
它基本上與一些照片喜歡
SELECT *
FROM Table1
LEFT JOIN Table2 on Table1.transactionID = Table2.transactionID
WHERE DateDiff(month, Table1.dateReported, Table2 .dateTransDate) <= 6
不會是你最關心的,你爲什麼不使用構建功能如果他們已經指出你的快捷方式的xD – LONG
是否datereported,並在同一個表或不同的表datetransdate?如果相同,它不會是sargable(至少不創建一個自定義計算列)如果分開,你可以使它對一列而不是另一列是sargable。哪個最好取決於。 –
請在您的問題中包含您已有的查詢。從哪個表中清除DateDiff表達式中的列來自哪個表。 –