2012-07-18 2 views
9

I했습니다 지금 내가, 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); 

이 쿼리 원을 실행 성공적인 다른 열 값을 기준으로 열을 업데이트 할 MS 액세스 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' 
    ); 

해당 쿼리는 % 와일드 카드 문자 대신 액세스 기본 (ANSI 89 모드) *을 사용합니다. % 와일드 카드를 사용하려는 경우에는 다른 비교 연산자를 사용하여 수행 할 수 있습니다.

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

@HansUp, 고맙습니다. –

+3

+1 "IIf"기능을 사용할 수도 있지만 스위치는이 예에서 더 깨끗합니다. –

관련 문제