Microsoft Access 不像其他一些資料庫系統那樣直接支援 CASE 語句。 嘗試使用它們將導致錯誤。 但是,您可以使用內建的 IIF()
和 Switch()
函數來獲得相同的結果。
IIF()
函數提供條件邏輯。其結構為:
<code class="language-sql">IIF(condition, true_result, false_result)</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])</code>
如果它更大,則回傳LASTSERVICEDATE
;否則,回傳 [Last CP12 Date]
.
對於更複雜的場景,Switch()
函數提供了多條件方法:
<code class="language-sql">Switch( expr1, value1, expr2, value2, ..., exprN, valueN )</code>
每個 expr
都會依序求值。 如果 expr
為 true,則傳回其對應的 value
。 重要的是,即使在找到匹配項之後,Access 也會計算所有 表達式。 請注意由於此特性而導致的潛在錯誤或意外行為。
請記住要使這些範例適應您的特定欄位和表格名稱。 為了找到多列或多行的最大日期,可能需要更進階的 SQL 技術,例如子查詢或聚合函數中的 MAX()
。
以上是如何在沒有 CASE 語句的情況下尋找 Access 的最大日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!