我正在将当前的Microsoft访问过程传输到SQL Server 2016,并且在重写访问SQL查询之一时遇到了问题。当前访问查询在集合函数中具有以下代码
b.New_AVM_Index = IIf(a.[AVM_Index]>0
,a.[AVM_Index]*(IIf(a.[Stratified_Median_AVM]>0
,IIf(b.[Stratified_Median_AVM]>0
,b.[Stratified_Median_AVM]/a.[Stratified_Median_AVM]
,1),1)),10000)
当语句,时,IIF访问函数的工作原理与SQL情况相同,但是我的问题是,当the tht squl Server中的计算中的语句或其他条款中的计算中的语句中的语句中,处理嵌套情况的最佳方法是什么。?
以下是我尝试将new_avm_index列添加到表中而没有成功的尝试:
CASE WHEN (a.[AVM_Index]>0
THEN a.[AVM_Index]* (WHEN(a.[Stratified_Median_AVM]>0
THEN WHEN (b.[Stratified_Median_AVM]>0
THEN b.[Stratified_Median_AVM]/a.[Stratified_Median_AVM]
ELSE 1 END) ELSE 1 END)) ELSE 10000)
END AS New_AVM_Index
我在问题时审查了其他嵌套情况,但是当计算中的语句中,我还没有看到嵌套情况的示例。
任何提示都将不胜感激
在CASE
CASE
SELECT CASE WHEN a.[AVM_Index] > 0
THEN a.[AVM_Index] * (CASE WHEN a.[Stratified_Median_AVM] > 0
THEN (CASE WHEN b.[Stratified_Median_AVM] > 0
THEN b.[Stratified_Median_AVM] / a.[Stratified_Median_AVM]
ELSE 1 END
)
ELSE 1 END)
ELSE 10000
END AS New_AVM_Index