3 回答

TA貢獻1858條經驗 獲得超8個贊
您可以改用該IIF()函數。
IIF(condition, valueiftrue, valueiffalse)
condition 是您要測試的值。
valueiftrue 是在條件評估為TRUE時返回的值。
valueiffalse 是在條件評估為FALSE時返回的值。
Switch當您有多個條件要測試時,還有一個易于使用和理解的功能:
Switch( expr-1, value-1 [, expr-2, value-2 ] … [, expr-n, value-n ] )
開關函數參數列表由成對的表達式和值組成。從左到右對表達式進行求值,并返回與第一個要求值為True的表達式相關聯的值。如果零件未正確配對,則會發生運行時錯誤。例如,如果expr-1為True,則Switch返回value-1。如果expr-1為False,但expr-2為True,則Switch返回value-2,依此類推。
在以下情況下,Switch返回Null值:
這些表達式都不是真的。
第一個True表達式的對應值為Null。
注意:Switch計算所有表達式,即使它僅返回其中之一。因此,您應該注意不良副作用。例如,如果對任何表達式求值導致除以零誤差,則會發生錯誤。

TA貢獻1828條經驗 獲得超3個贊
switch
如果要評估的條件更多,則該函數是要使用的更好的函數。與使用嵌套IIF
函數相比,它更易于閱讀/理解/維護。另外,實現默認值而不是創建基本上計算為“所有先前表達式均為假”的邏輯表達式的另一種方法是僅用true
作要評估的最終表達式。例如switch(dbo_tbl_property.LASTSERVICEDATE > Contour_dates.[Last CP12 Date], dbo_tbl_property.LASTSERVICEDATE, true ,Contour_dates.[Last CP12 Date])
添加回答
舉報