SQL Server / T-SQL: CHOOSE 是评估所有结果,还是只评估返回的结果?
SQL Server / T-SQL: Does CHOOSE evaluate all results, or just the result being returned?
CHOOSE
语句是否会导致服务器评估 ALL 个可能的结果?
还是服务器只评估选择的结果?
我的情况是,我根据整数值 1 到 12 列出了十几种可能的结果 - 但结果是非常长的数学过程,我不希望服务器浪费时间评估所有 12 个,只选择一个结果 return。
例如:
CHOOSE ( 2 , LongOperation1 ( ) , LongOperation2 ( ) , LongOperation3 ( ) , etc...
看起来它并没有执行所有的计算。下面的两个示例都包含一个 1/0 选项,但是下面的语句中只有 1 个会在被零除时出错:
select CHOOSE(2, 1, 1+4, 1/0)
对比
select CHOOSE(2, 1, 1/0, 1+4)
CHOOSE
语句是否会导致服务器评估 ALL 个可能的结果?
还是服务器只评估选择的结果?
我的情况是,我根据整数值 1 到 12 列出了十几种可能的结果 - 但结果是非常长的数学过程,我不希望服务器浪费时间评估所有 12 个,只选择一个结果 return。
例如:
CHOOSE ( 2 , LongOperation1 ( ) , LongOperation2 ( ) , LongOperation3 ( ) , etc...
看起来它并没有执行所有的计算。下面的两个示例都包含一个 1/0 选项,但是下面的语句中只有 1 个会在被零除时出错:
select CHOOSE(2, 1, 1+4, 1/0)
对比
select CHOOSE(2, 1, 1/0, 1+4)