简体   繁体   English

Microsoft Access - 案例查询

[英]Microsoft Access - Case Query

I've just try using MS Access 2007 now I want to update a column based on other column value, in MY SQL it was successfull running this query 我现在尝试使用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);

This query won't run in MS Access, there is error Sytax error (missing operator) in query expression . 此查询不会在MS Access中运行Sytax error (missing operator) in query expression存在错误Sytax error (missing operator) in query expression How can I solve this? 我怎么解决这个问题?

There is no CASE ... WHEN in Access SQL. Access SQL中没有CASE ... WHEN。 You can use the Switch Function instead. 您可以改用Switch Function

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

That query uses Access' default (ANSI 89 mode) * instead of % wildcard character. 该查询使用Access的默认(ANSI 89模式)*而不是%通配符。 If you want to use the % wildcard, you can do it with the ALike comparison operator. 如果要使用%通配符,可以使用ALike比较运算符。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM