gpt4 book ai didi

sql-server - 为什么在 MS SQL 中是 'No math function In Where Clause'?

转载 作者:行者123 更新时间:2023-12-05 08:15:43 25 4
gpt4 key购买 nike

大多数 SQL 查询在 where 子句上没有数学运算。

将它们放在“where 子句”上有什么问题?有没有性能问题?

例如:

SELECT * FROM Employee WHERE Salary*3 = 5000

最佳答案

如果 where 子句可以使用索引,它通常(但不总是)更快。在字段上使用数学运算将停止使用索引。

例如,如果您有一个包含一百万行的表和一个已编制索引的日期列,那么此处的查询 1 将远远优于查询 2(它们都检索日期在过去 7 天内的所有行):

查询 1:

select date from table where date > dateadd(d, -7, getdate())

查询 2:

select date from table where dateadd(d, 7, date) > getdate()

在您的示例中,查询会好得多:

select * from employee where salary = (5000 / 3)

关于sql-server - 为什么在 MS SQL 中是 'No math function In Where Clause'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/771999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com