【问题标题】:Microsoft Access - Case QueryMicrosoft Access - 案例查询
【发布时间】:2012-07-18 04:43:42
【问题描述】:

我刚刚尝试使用 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。我该如何解决这个问题?

【问题讨论】:

  • 去掉括号会怎样?

标签: sql ms-access


【解决方案1】:

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'
    );

【讨论】:

  • +1 你也可以使用“IIf”函数,但是在这个例子中 Switch 会更干净。
猜你喜欢
  • 1970-01-01
  • 2016-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多