我期待在与查询,为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表达式中的列来自哪个表。 –