9

我刚刚尝试使用 MS Access 2007 现在我想根据其他列值更新列,在我的 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);

此查询不会在 MS Access 中运行,存在错误Sytax error (missing operator) in query expression。我该如何解决这个问题?

4

1 回答 1

21

Access SQL 中没有 CASE ... WHEN。您可以改用开关功能

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'
    );
于 2012-07-18T05:13:08.140 回答