QGIS : 가상 필드 생성시 문자열 포맷

Dec 10 2020

카운티 경계 와 함께 미국 인구 조사 인구 추정치 에 참여하고 싶습니다 .

인구 추정 레이어 ( co-est2019-alldata)에는 다음 STATECOUNTY같이 주 및 카운티 FIPS 코드 가있는 및 필드가 포함 됩니다.

상태
36 51
1 15

카운티 경계 ( cb_2018_us_county_5m) 레이어에는 동일한 값이 포함되지만 형식이 약간 다르며 추가로 GEOID두 가지를 결합 하는 문자열 필드가 있습니다.

STATEFP COUNTYFP GEOID
36 051 36051
01 015 01015

QGIS 는 다중 필드 결합을 지원하지 않지만 일반적인 해결 방법은 대상 속성을 결합하는 새로운 가상 필드를 만드는 것입니다. GEOID카운티 경계 레이어 의 필드 와 일치하는 인구 레이어에 가상 필드를 만들고 싶습니다 .

에 해당하는 함수가 있으면 간단합니다 sprintf. 왜냐하면 다음과 같이 작성할 수 있기 때문입니다.

sprintf('%02s%03s', "STATE", "COUNTY")

...하지만 내가 말할 수있는 한 그러한 기능은 존재하지 않습니다. 이를 처리하는 가장 좋은 방법은 무엇입니까?

답변

3 J.Monticolo Dec 10 2020 at 05:27

이거 한번 해봐 :

lpad(to_string("STATE"), 2, '0') || lpad(to_string("COUNTY"), 3, '0')

보고

if "STATE"= 1"COUNTY"= 15: 01015
if "STATE"= 22"COUNTY"= 5:22005

문서에서 :

  • LPAD ( string, width, fill) ( 문서 ) :

    채우기 문자를 사용하여 왼쪽이 지정된 너비로 채워진 문자열을 반환합니다. 대상 너비가 문자열 길이보다 작 으면 문자열이 잘립니다.

  • to_string ( number) ( doc ) : (필드가 문자인지 확실하지 않았기 때문에)

    숫자를 문자열로 변환합니다.

  • || : 두 문자열 연결