SQLServer/T-SQL:CHOOSE是评估所有结果,还是只评估返回的结果



CHOOSE语句是否会导致服务器评估所有可能的结果
或者服务器只评估所选的结果?

我的情况是,我有一个基于1到12的整数值的十几个可能结果的列表,但结果是非常长的数学过程,我不希望服务器浪费时间评估所有12个结果,只选择一个结果返回。

例如:

CHOOSE ( 2 , LongOperation1 ( ) , LongOperation2 ( ) , LongOperation3 ( ) , etc...

看起来它并没有执行所有的计算。下面的两个例子都包含一个1/0选项,但下面的语句中只有一个会在除以零的错误中出错:

select CHOOSE(2, 1, 1+4, 1/0)

select CHOOSE(2, 1, 1/0, 1+4)

相关内容