2012-07-18 23 views
9

acabo de tratar de usar MS Access 2007 ahora quiero actualizar una columna basada en otra columna de valor, en mi SQL fue exitosa ejecución de esta consultaMicrosoft Access - Caso de consulta

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

Esta consulta won No se ejecuta en MS Access, existe el error Sytax error (missing operator) in query expression. ¿Como puedo resolver esto?

+0

¿Qué pasa si se eliminan los paréntesis? – zerkms

+0

sucedió lo mismo –

Respuesta

21

No hay CASO ... CUANDO en Access SQL. Puede usar el Switch Function en su lugar.

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

Esa consulta utiliza el valor predeterminado de Acceso (modo ANSI 89) * en lugar de% carácter comodín. Si desea utilizar el comodín%, puede hacerlo con el operador de comparación ALike.

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

Gracias @HansUp, funciona ahora. –

+3

+1 También puede usar la función "IIf", pero Switch será más limpio en este ejemplo. –

Cuestiones relacionadas