Sql 在存储过程中使用Case语句优于If语句的好处?
您好,在使用IF语句或选择使用CASE语句时,存储过程的执行速度有什么优点/缺点吗?如果可以避免,我尽量不使用Sql 在存储过程中使用Case语句优于If语句的好处?,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,您好,在使用IF语句或选择使用CASE语句时,存储过程的执行速度有什么优点/缺点吗?如果可以避免,我尽量不使用IFs,因为它们是非事务性的,也就是说,您通常无法保证IF的条件在开始内仍然有效。。。结束的块(如果) 例如,我假设您的意思是在SQLSELECT中使用CASE语句。如果该用法是为了避免出现If,那么请务必这样做 SQL的黄金法则是:让服务器知道怎么做,告诉服务器你想要什么。如果可以避免,我尽量不使用IFs,因为它们是非事务性的,也就是说,你通常无法保证IF的条件在开始中仍然有效。。。结
IF
s,因为它们是非事务性的,也就是说,您通常无法保证IF
的条件在开始内仍然有效。。。结束的块(如果)
例如,我假设您的意思是在SQLSELECT
中使用CASE
语句。如果该用法是为了避免出现If
,那么请务必这样做
SQL的黄金法则是:让服务器知道怎么做,告诉服务器你想要什么。如果可以避免,我尽量不使用IF
s,因为它们是非事务性的,也就是说,你通常无法保证IF
的条件在开始中仍然有效。。。结束的块(如果)
例如,我假设您的意思是在SQLSELECT
中使用CASE
语句。如果该用法是为了避免出现If
,那么请务必这样做
SQL的黄金法则是:让服务器知道怎么做,告诉服务器你想要什么。不要担心case和IF语句之间的速度差异。因为您处理的是数据库,所以从磁盘写入或读取所需的时间将使CPU通过IF或Case进行分支所需的时间相形见绌。相反,您应该关注哪些因素使代码更具可读性和可维护性。不要关注case和IF语句之间的速度差异。因为您处理的是数据库,所以从磁盘写入或读取所需的时间将使CPU通过IF或Case进行分支所需的时间相形见绌。相反,您应该关注哪些因素使代码更具可读性和可维护性。如果不知道您要做什么,就不可能回答这个问题。在存储过程中,像T-SQL这样的语言IF和CASE用于完全不同的事情。CASE是在语句中使用的,如果不是,我同意。CASE是一个表达式,IF控制执行流。您必须给出一个代码示例,以便在两者之间做出选择。我猜您可能是试图有条件地设置一个变量(此处为用例,但不适用于perf),或者您误解了CASE。如果不知道您试图执行的操作的细节,就不可能回答这个问题。在存储过程中,像T-SQL这样的语言IF和CASE用于完全不同的事情。CASE是在语句中使用的,如果不是,我同意。CASE是一个表达式,IF控制执行流。您必须给出一个代码示例,以便在两者之间做出选择。我猜您可能是试图有条件地设置一个变量(这里使用CASE,但不是perf),或者您误解了CASE。