在一本关于SQL Server 2014的书中,我被建议避免
SELECT orderid, orderdate, filler
FROM dbo.Orders
WHERE YEAR(orderdate) = 2014;
并且更喜欢
SELECT orderid, orderdate, filler
FROM dbo.Orders
WHERE orderdate >= '20140101'
AND orderdate < '20150101';
当orderdate
上有聚集索引时,因为使用YEAR
会使查询不可SARGable.
自SQL Server 2014年以来,这种情况是否发生了变化?如果是,它改成了什么版本?