복붙노트

[SQL] 마이크로 소프트 액세스 - 케이스 쿼리

SQL

마이크로 소프트 액세스 - 케이스 쿼리

난 그냥 2007 MS Access를 사용하려고했습니다 지금은 다른 열 값을 기준으로 열을 업데이트 할, 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 Access에서 실행되지 않습니다, 쿼리 식의 오류 구문 오류 (누락 된 연산자)가있다. 나는이 문제를 어떻게 해결할 수 있습니까?

해결법

  1. ==============================

    1.어떠한 경우 ... 언제 액세스 SQL에서이 없습니다. 당신은 대신에 스위치 기능을 사용할 수 있습니다.

    어떠한 경우 ... 언제 액세스 SQL에서이 없습니다. 당신은 대신에 스위치 기능을 사용할 수 있습니다.

    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'
        );
    
  2. from https://stackoverflow.com/questions/11534425/microsoft-access-case-query by cc-by-sa and MIT license