2012-07-18 120 views
9

我只是嘗試使用MS Access 2007年 現在我想基於其他列的值來更新一列,在MY SQL是全成運行此查詢的Microsoft Access - 案例查詢

UPDATE HAI 
SET REGION=(
CASE 
    WHEN (NUMREG LIKE '%1') THEN 'BDG' 
    WHEN (NUMREG LIKE '%2') THEN 'JKT' 
    WHEN (NUMREG LIKE '%3') THEN 'KNG' 
END); 

這個查詢韓元運行在MS Access中,出現錯誤Sytax error (missing operator) in query expression。我該如何解決這個問題?

+0

如果刪除括號? – zerkms 2012-07-18 04:46:12

+0

同樣的事情發生 – 2012-07-18 04:53:20

回答

21

在Access SQL中沒有CASE ... WHEN。您可以改用Switch Function

UPDATE HAI 
SET REGION = Switch(
    NUMREG Like '*1', 'BDG', 
    NUMREG Like '*2', 'JKT', 
    NUMREG Like '*3', 'KNG' 
    ); 

該查詢使用Access默認(ANSI 89模式)*代替%通配符。如果你想使用%通配符,你可以用ALike比較運算符來完成。

UPDATE HAI 
SET REGION = Switch(
    NUMREG ALike '%1', 'BDG', 
    NUMREG ALike '%2', 'JKT', 
    NUMREG ALike '%3', 'KNG' 
    ); 
+0

謝謝@HansUp,它現在有效。 – 2012-07-18 06:15:00

+3

+1您也可以使用「IIf」功能,但在此示例中,Switch將更清潔。 – 2012-07-18 10:18:45