使用 IIF() 和 Switch() 找出 Microsoft Access 中的最大日期
Microsoft Access 不直接支援 CASE 表達式。 但是,我們可以使用 IIF()
和 Switch()
函數來實現類似的功能來確定最大日期。
IIF() 函數
IIF()
函數是一個條件語句,如果條件為真,則傳回一個值,如果條件為假,則傳回另一個值。其結構為:
<code class="language-sql">IIF(condition, true_value, false_value)</code>
範例:要尋找兩個欄位 LASTSERVICEDATE
和 [Last CP12 Date]
之間的最大日期:
<code class="language-sql">IIF(dbo_tbl_property.LASTSERVICEDATE > Contour_dates.[Last CP12 Date], dbo_tbl_property.LASTSERVICEDATE, Contour_dates.[Last CP12 Date]) AS MaxDate</code>
如果大於LASTSERVICEDATE
,則此查詢返回[Last CP12 Date]
;否則,返回 [Last CP12 Date]
.
Switch() 函數
Switch()
函數提供了一種更簡潔的方法來處理多個條件。其語法為:
<code class="language-sql">Switch(expr1, value1, expr2, value2, ..., exprN, valueN)</code>
此函數依序計算表達式。 如果表達式計算結果為 true,則傳回對應的值。
範例:使用 Switch()
找出最大日期:
<code class="language-sql">Switch(dbo_tbl_property.LASTSERVICEDATE > Contour_dates.[Last CP12 Date], dbo_tbl_property.LASTSERVICEDATE, TRUE, Contour_dates.[Last CP12 Date]) AS MaxDate</code>
這實現了與 IIF()
範例相同的結果。請注意,即使在找到真實條件之後,Switch()
也會計算所有表達式。 請注意此行為可能引起的潛在錯誤,例如除以零。
以上是如何使用 IIF() 和 Switch 函數來尋找 Access 中的最大日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!