QGIS : 가상 필드 생성시 문자열 포맷
카운티 경계 와 함께 미국 인구 조사 인구 추정치 에 참여하고 싶습니다 .
인구 추정 레이어 ( co-est2019-alldata
)에는 다음 STATE
과 COUNTY
같이 주 및 카운티 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")
...하지만 내가 말할 수있는 한 그러한 기능은 존재하지 않습니다. 이를 처리하는 가장 좋은 방법은 무엇입니까?
답변
이거 한번 해봐 :
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 ) : (필드가 문자인지 확실하지 않았기 때문에)숫자를 문자열로 변환합니다.
|| : 두 문자열 연결