回覆列表
  • 1 # 木易42214

    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。

  • 中秋節和大豐收的關聯?
  • 動漫《畫江湖之不良人》中五叔李大白為什麼接近李星雲,會不會有其他目的?