QGIS 쿼리 구문은 속성 테이블과 기능 필터가 다릅니다


11

QGIS 2.16.2를 사용하여 다음 표현식을 사용하여 shapefile 속성 테이블에서 레코드를 성공적으로 선택할 수 있습니다.

left("start_time", 10) = '2015-08-01'

start_time은 문자열 필드입니다.

그러나 모양 파일의 레이어 속성> 일반> 기능 필터> 쿼리 작성기에 동일한 표현식을 복사하여 붙여 넣을 때 다음 오류가 발생합니다.

여기에 이미지 설명을 입력하십시오

QGIS의 모든 곳에서 동일한 표현이 작동 할 것으로 기대합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변:


12

관찰 결과가 정확합니다. Query Builder 는 나머지 QGIS와 동일한 구문을 사용하지 않습니다.

QGIS 전체에서 구문은 QGIS Expressions에 따라 사용자 정의 된 SQL 언어를 기반으로 합니다. 이것은 필터를 입력하고 값을 계산할 수있는 QGIS의 거의 모든 부분에서 이식 가능합니다.이 구문은 QGIS에서 직접 구문 분석 및 평가되며 그 일부는 공급자에게 전송 될 수 있습니다.

제공 기능 필터 를 통해 정의 된 쿼리 빌더 (종종라고도 하위 문자열 계층에 대한 QGIS 전혀 그것을보고하지 않는 방식으로 서로 다른 작동). 그것은 공급자에게 보내기 만하면됩니다. 이 경우 공급자는 OGR이며 SQL 구문의 하위 집합 만 지원 하지만 postgres / postgis 데이터베이스에 액세스 할 때와 같이 때로는 매우 강력합니다.


알아 둘만 한. 필터에서 다음 쿼리를 사용했으며 이전에 시도한 선택을 올바르게 대체했습니다. "start_time"LIKE '2015-08-01 %'
Stu Smith
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.