access的switch函式:
Access中沒有Case When的用法,所以對於某些篩選比較就顯得很吃力。不過還好,Access中有一個Switch可以解決這個問題。Switch 的語法是:SWITCH( case_1, result_1[, case_2, result_2...])。Switch的計算順序為從左到右,將返回第一個為true的case對應的result。ACCESS對Switch有預編譯(基本能夠寫進ACCESS的Sql都有預編譯,ACCESS不支援Execute(SqlString)的用法),所以Switch中的條件和結果不能有邏輯錯誤和語法錯誤,否則不能執行。
例項:表tUser中有欄位sex Text(1),用於儲存使用者性別,其中,如sex="m",使用者為男性;sex="f",使用者為女性;其他情況為保密。為了便於sql語句的說明,我們假設還有其他兩個欄位,userid和username。
在SqlServer中,如果要在搜尋結果中直接顯示性別的名稱SexName(不是m/f之類的程式碼),使用Case When很方便。
SELECT UserID,
UserName,
SexName = WHEN LCASE(Sex)
CASE "m" THEN N"男"
CASE "f" THEN N"女"
ELSE N"保密" END
FROM tUser
ACCESS不支援WHEN CASE的用法。雖然不那麼靈巧,但是用Switch可以解決這個問題。
SWITCH(
Sex = "f", "男",
Sex = "m", "女",
True, "保密"
) AS SexName
上述中最後一個Case為true,該用法類似於When Case語法中的Else。
access的switch函式:
Access中沒有Case When的用法,所以對於某些篩選比較就顯得很吃力。不過還好,Access中有一個Switch可以解決這個問題。Switch 的語法是:SWITCH( case_1, result_1[, case_2, result_2...])。Switch的計算順序為從左到右,將返回第一個為true的case對應的result。ACCESS對Switch有預編譯(基本能夠寫進ACCESS的Sql都有預編譯,ACCESS不支援Execute(SqlString)的用法),所以Switch中的條件和結果不能有邏輯錯誤和語法錯誤,否則不能執行。
例項:表tUser中有欄位sex Text(1),用於儲存使用者性別,其中,如sex="m",使用者為男性;sex="f",使用者為女性;其他情況為保密。為了便於sql語句的說明,我們假設還有其他兩個欄位,userid和username。
在SqlServer中,如果要在搜尋結果中直接顯示性別的名稱SexName(不是m/f之類的程式碼),使用Case When很方便。
SELECT UserID,
UserName,
SexName = WHEN LCASE(Sex)
CASE "m" THEN N"男"
CASE "f" THEN N"女"
ELSE N"保密" END
FROM tUser
ACCESS不支援WHEN CASE的用法。雖然不那麼靈巧,但是用Switch可以解決這個問題。
SELECT UserID,
UserName,
SWITCH(
Sex = "f", "男",
Sex = "m", "女",
True, "保密"
) AS SexName
FROM tUser
上述中最後一個Case為true,該用法類似於When Case語法中的Else。