2012-07-18 12 views
9

Iましたちょうど今、私は、MY SQLで、それはこのクエリのMicrosoft Access - ケースクエリ

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 2007では を使用してみてくださいMS Accessで実行すると、エラーSytax error (missing operator) in query expressionがあります。これをどうすれば解決できますか?

+0

カッコを削除するとどうなりますか? – zerkms

+0

同じことが起こった –

答えて

21

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

@HansUpありがとう、それは今動作します。 –

+3

+1 "IIf"機能を使用することもできますが、この例ではスイッチはよりクリーンになります。 –

関連する問題