Microsoft Access - 案例查询

Fah*_*han 9 sql ms-access

我现在尝试使用MS Access 2007我想基于其他列值更新列,在MY SQL中它成功运行此查询

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

此查询不会在MS Access中运行,有错误Sytax error (missing operator) in query expression.我怎么解决这个问题?

Han*_*sUp 21

Access SQL中没有CASE ... WHEN.您可以改用Switch Function.

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

该查询使用Access的默认(ANSI 89模式)*而不是%通配符.如果要使用%通配符,可以使用ALike比较运算符.

UPDATE HAI
SET REGION = Switch(
    NUMREG ALike '%1', 'BDG',
    NUMREG ALike '%2', 'JKT',
    NUMREG ALike '%3', 'KNG'
    );
Run Code Online (Sandbox Code Playgroud)

  • +1您也可以使用"IIf"功能,但在此示例中,Switch将更干净. (3认同)