2012-07-18 15 views
9

ho appena provo con MS Access 2007 ora voglio aggiornare una colonna sulla base di un altro valore di colonna, a mio SQL era successo l'esecuzione di questa interrogazioneMicrosoft Access - Caso Query

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

Questa interrogazione won eseguire in MS Access, c'è l'errore Sytax error (missing operator) in query expression. Come posso risolvere questo?

+0

Cosa succede se si rimuovono le parentesi? – zerkms

+0

stessa cosa è successo –

risposta

21

Non c'è CASE ... WHEN in Access SQL. È possibile utilizzare il Switch Function invece.

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

Quella query utilizza l'impostazione predefinita 'Accesso' (modalità ANSI 89) * invece di% carattere jolly. Se si desidera utilizzare il carattere jolly%, è possibile farlo con l'operatore di confronto Ali.

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

Grazie @HansUp, ora funziona. –

+3

+1 È inoltre possibile utilizzare la funzione "IIf", ma in questo esempio Switch sarà più pulito. –

Problemi correlati