2012-07-18 58 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