SQL Server / T-SQL:CHOOSE是否评估所有结果,还是仅评估返回的结果?

时间:2018-08-01 21:05:45

标签: sql sql-server performance control-flow sql-server-2017

CHOOSE语句是否导致服务器评估可能结果的 ALL
还是服务器仅评估选择的结果?

我处于一种情况,根据整数值1到12,我可以列出许多可能的结果-但是结果是很长的数学过程,我不想服务器浪费时间评估全部12个,只选择一个结果即可返回。

例如:

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

1 个答案:

答案 0 :(得分:3)

似乎没有执行所有计算。下面的两个示例都包含1/0选项,但是下面的语句中只有1条会在被零除错误时出错:

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

vs

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