Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在存储过程中使用Case语句优于If语句的好处?_Sql_Sql Server_Stored Procedures - Fatal编程技术网

Sql 在存储过程中使用Case语句优于If语句的好处?

Sql 在存储过程中使用Case语句优于If语句的好处?,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,您好,在使用IF语句或选择使用CASE语句时,存储过程的执行速度有什么优点/缺点吗?如果可以避免,我尽量不使用IFs,因为它们是非事务性的,也就是说,您通常无法保证IF的条件在开始内仍然有效。。。结束的块(如果) 例如,我假设您的意思是在SQLSELECT中使用CASE语句。如果该用法是为了避免出现If,那么请务必这样做 SQL的黄金法则是:让服务器知道怎么做,告诉服务器你想要什么。如果可以避免,我尽量不使用IFs,因为它们是非事务性的,也就是说,你通常无法保证IF的条件在开始中仍然有效。。。结

您好,在使用IF语句或选择使用CASE语句时,存储过程的执行速度有什么优点/缺点吗?

如果可以避免,我尽量不使用
IF
s,因为它们是非事务性的,也就是说,您通常无法保证
IF
的条件在
开始内仍然有效。。。结束
块(如果

例如,我假设您的意思是在SQL
SELECT
中使用
CASE
语句。如果该用法是为了避免出现
If
,那么请务必这样做


SQL的黄金法则是:让服务器知道怎么做,告诉服务器你想要什么。

如果可以避免,我尽量不使用
IF
s,因为它们是非事务性的,也就是说,你通常无法保证
IF
的条件在
开始中仍然有效。。。结束
块(如果

例如,我假设您的意思是在SQL
SELECT
中使用
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。