9

MS Access 2007を使用してみましたが、他の列の値に基づいて列を更新したいのですが、MYSQLではこのクエリを正常に実行できました。

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

このクエリはMSAccessでは実行されません。エラーが発生しますSytax error (missing operator) in query expression。どうすればこれを解決できますか?

4

1 に答える 1

21

AccessSQLには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 に答える