QGIS 필드 계산기에서 Elseif 조건문을 사용합니까?


14

QGIS Field Calculator (버전 1.8.0)에 ELSEIF 조건문을 작성하려고합니다. 온라인에서 찾은 예를 사용했습니다.

CASE WHEN val < 0 THEN 'negative'
  WHEN val = 0 THEN "neutral'
  ELSE 'positive'
END

나는 다음과 같이 진술을 수정했다.

CASE WHEN  "GRID_ID"  = 1 THEN 'complete'
  ELSEIF  "GRID_ID"  = 2 THEN "in progress'
  ELSE 'not started'
END

이 명령문은 실행되지 않습니다. 출력 미리보기에는 Expression이 유효하지 않다고 명시되어 있습니다. 더 많은 정보 : 구문 분석기 오류 : 구문 오류, 예기치 않은 COLUMN_REF, WHEN 또는 ELSE 또는 END 예상

누구 든지이 오류가 발생하면 어떻게 해결 했습니까?

답변:


21

수정 된 명령문에 몇 가지 문제점이 있습니다.

  • 일관된 따옴표 사용 "in progress'
  • 열 이름을 따옴표로 묶을 필요는 없습니다.
  • "WHEN"이어야 할 때 "ELSEIF"를 사용하고 있습니다.

다음은 세 가지 문제를 모두 해결하고 1.8.0에서 작동합니다.

CASE WHEN GRID_ID = 1 THEN 'complete'
  WHEN GRID_ID = 2 THEN 'in progress'
  ELSE 'not started'
END

2
"열 이름을 따옴표로 묶을 필요는 없습니다." 구문 강조 표시기가 해당 부분을 열로 표시하는 데 도움이되므로 여전히 권장하지는 않습니다.
Nathan W

@NathanW-구문 강조 표시는 따옴표 사용 여부에 관계없이 열 이름을 빨간색으로 표시합니다. 적어도 내 1.8.0 설치에서는 그렇습니다.
GIS-Jonathan

1
실제로 그렇습니다. 그것은 매우 당혹 스럽습니다. 나는 형광펜을 썼을 때 그렇게한다는 것을 알고 있었을 것입니다;)
Nathan W

@NathanW-이해할 수 있습니다. 어제 내가 쓴 것을 간신히 기억할 수 있습니다. ;-)
GIS-Jonathan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.