필드 계산을 통해 호스팅 피처 레이어 소유자 또는 기관 관리자는 레이어 속성 테이블에 있는 단일 필드의 모든 행 값을 변경할 수 있습니다.
예를 들어 부동산 매매에 대한 정보(부동산 매매 가격 및 세율 포함)를 저장하는 호스팅 피처 레이어가 있는 경우 레이어에 필드를 추가하여 예상되는 재산세를 저장할 수 있습니다. estimated_property_taxes 필드를 채우려면 sale_price 필드의 값을 가져와서 tax_rate 값을 곱하는 필드에 대한 계산 식을 정의합니다.
다음과 같은 두 가지 옵션으로 호스팅 피처 레이어에 포함된 레이어에 필드 계산 식을 작성할 수 있습니다.
- ArcGIS Arcade — Arcade는 SQL보다 더 다양한 기능이 필요한 계산에 적합합니다. Arcade는 속성 값 및 피처 지오메트리에 접근할 수 있으므로 공간 연산이 포함된 식을 작성할 수 있습니다. 또한 특정 행을 계산할 때 오류가 발생한 경우 계산을 중지하고 문제를 해결한 후 계산을 다시 시작할 수 있습니다.
비고:
ArcGIS API for JavaScript 3.44 이후 버전은 최신 ArcGIS Arcade 언어 기능으로 업데이트되지 않습니다. 3.44 이후 버전의 JavaScript API 앱에서 작성된 Arcade 식은 Arcade 1.21 이전 버전에 도입된 Arcade 언어 기능만 지원합니다. ArcGIS 제품 전반의 Arcade 언어 지원에 대해 자세히 알아보려면 Arcade 버전 비교표를 참고하세요.
- SQL — SQL을 사용하면 비공간 속성에 대해 표준화된 SQL(SQL-92) 식으로 수행할 수 있는 계산을 가장 빠르게 수행할 수 있습니다. 동기화가 활성화된 호스팅 피처 레이어와 피처 생성자 및 편집자를 추적하도록 구성된 레이어에 대해 SQL을 실행할 수 있습니다. 하지만 이러한 레이어에서 Arcade 식을 실행할 수 없습니다.
다음 섹션에는 호스팅 피처 레이어의 항목 페이지에서 필드 값을 계산하는 방법이 나와 있습니다. 후속 섹션에서는 일반적인 계산 예시가 제공됩니다.
항목 페이지에서 필드의 값 계산
피처 레이어의 항목 페이지에서 필드의 문자열, 숫자 또는 날짜 필드 값을 계산하려면 다음 단계를 따릅니다.
비고:
필드 계산은 실행 취소할 수 없습니다. 따라서 필드를 추가하고 해당 필드에 값을 계산한 후 원하는 계산인지 확인하는 것을 권장합니다. 원하는 계산인 경우 기존 필드를 계산하여 추가된 필드와 동일하게 만들 수 있습니다. 기존 필드의 값이 올바른지 확인한 후에 추가한 필드를 삭제할 수 있습니다.
- 레이어의 항목 페이지에서 데이터 탭을 클릭하여 테이블을 표시합니다.
- 계산하려는 값이 포함된 열을 클릭합니다.
- 다음 중 하나를 수행하여 필드 계산 대화 상자를 엽니다.
- 계산을 클릭합니다.
- 상세 보기 나타내기 > 계산을 클릭합니다.
- 계산에 사용할 언어를 Arcade 또는 SQL 중에서 선택합니다.
동기화가 활성화되었거나 피처를 생성하거나 업데이트한 사용자를 추적하도록 구성된 호스팅 피처 레이어의 경우 해당 페이지는 표시되지 않습니다. 대신 SQL 창이 나타납니다.
- 계산 식을 작성합니다.
계산이 완료되는 데 걸리는 시간은 식의 복잡성 및 레이어의 피처 수에 따라 다릅니다.
계산 예시
다음 섹션에는 ArcGIS Online에서 일반적인 계산을 수행하기 위한 예시 구문이 나와 있습니다.
두 기존 필드의 숫자 값에 대한 수학 연산을 수행하여 세 번째 필드를 채웁니다.
가장 일반적인 계산 방법 중 하나는 피처 레이어의 기존 값을 기반으로 새로운 숫자 값을 계산하는 것입니다. 예를 들어, 모든 스토어의 당해 및 다음 해의 매출 총액을 통해 이윤 변동을 파악하거나 18세 미만의 총 거주자 수를 총 인구로 나누어 18세 미만의 인구 비율을 파악할 수 있습니다.
Arcade 예시
두 숫자 필드(Sales2016 및 Sales2017) 값의 차이를 계산하여 숫자 필드를 채웁니다.
$feature.Sales2016 - $feature.Sales2017
SQL 예시
인구 중 18세 미만의 비율을 계산한 결과에 해당하는 소수로 숫자 필드를 채웁니다.
PopUnder18/TotalPop
기존 필드의 문자열 값을 새 문자열 필드로 연결
기존 문자열 필드의 값을 조합하여 새 필드를 채우는 계산 방법도 있습니다. 예를 들어, 호텔의 룸 위치에 대한 문자열 필드(Floor와 Room)가 있으며, 이러한 두 문자열 필드를 하나의 문자열 필드로 합칠 수 있습니다.
다음 예시에서 Floor 및 Room 필드의 값이 단일 필드에 합쳐집니다.
Arcade 예시
Concatenate($feature.room,$feature.floor)
SQL 예시
CONCAT(Floor,Room)
문자열 필드의 선행/후행 공백 제거
사용자가 편집을 위해 필드에 값을 입력하거나 붙여넣을 때 실수로 텍스트에 선행/후행 공백이 삽입될 수 있습니다. 값 자르기를 통해 이러한 공백 오류를 지울 수 있습니다.
다음 예시에서는 편집자가 New Hampshire를 주 이름 저장 필드에 붙여넣을 때 후행 공백이 추가되었으므로 문자열 끝에 있는 공백을 자릅니다.
Arcade 예시
Trim('New Hampshire ')
SQL 예시
Trim(TRAILING ' ' FROM 'New Hampshire ')
다른 필드의 값에 따라 다른 값으로 필드 채우기
경우에 따라 필드에 추가하는 값은 피처별로 다르며 동일한 피처의 값에 따라 다를 수 있습니다. 예를 들어 문자열 필드를 피처 레이어에 추가하여 다른 필드의 숫자 값 또는 축약형 문자열 값을 나타내는 텍스트를 저장할 수 있습니다. SQL 계산 인터페이스에서는 해당 방법이 지원되지 않으므로 이러한 유형의 계산에는 Arcade를 사용해야 합니다.
Arcade 예시
다음 예시에서는 레이어의 다른 필드(HowMany)에 있는 수에 따라 다른 문자열 값(없음, 낮음, 높음, 기타)을 텍스트 필드에 기록합니다.
When(
$feature.HowMany == 0, "None",
$feature.HowMany == 1, "Low",
$feature.HowMany == 2, "High",
"Other")
한 값을 다른 값으로 바꾸기
변경된 특정 값을 나타내거나 잘못 입력된 값을 수정하는 등 기존 값을 다른 값으로 바꿔야 하는 경우 필드의 기존 값을 모두 찾은 다음 새 값으로 바꿀 수 있습니다. SQL 계산 인터페이스에서는 해당 방법이 지원되지 않으므로 이러한 유형의 계산에는 Arcade를 사용해야 합니다.
주의:
계산은 피처 레이어에 즉시 저장됩니다. 기존 값을 실수로 덮어쓴 경우에는 다시 계산하여 값을 되돌려야 합니다.
Arcade 예시
다음 예시에서는 Replace 함수를 사용하여 영국식 철자(컬러)를 미국식 철자로 변경합니다.Replace($feature.color, 'colour', 'color')
피처 면적당 숫자 속성 밀도 확인
특정 면적 내 한 속성의 밀도를 계산하려면 계산 인터페이스로 공간 필드에 대한 SQL 계산을 수행할 수 없으므로 Arcade 식을 사용해야 합니다.
Arcade 예시
다음 예시에서는 총 인구 값(TotalPop)을 폴리곤 피처의 면적(제곱마일)으로 나누어 피처당 인구 밀도를 계산합니다.
$feature.TotalPop / Area ($feature,
'square-miles')
포인트 피처의 좌표 파생
Arcade 식을 사용하여 포인트만 포함된 호스팅 피처 레이어의 공간 필드에 대해 위도 또는 경도 좌표를 반환할 수 있습니다.
공간 필드에 대한 이러한 유형의 계산은 계산 인터페이스에서 지원되지 않습니다.
Arcade 예시
다음 예시에서는 Geometry 함수를 사용하여 포인트 레이어에 있는 각 포인트의 x좌표에 대한 필드를 계산합니다.
Geometry($feature).x
날짜에 시간 더하기 또는 빼기
날짜 필드나 날짜 리터럴 값을 사용하여 시간을 더하거나 빼서 업데이트된 날짜 필드를 생성할 수 있습니다. 예를 들어 날짜에 시간을 더하여 향후 검침일 또는 검토일을 계산할 수 있습니다.
Arcade 예시
다음 예시에서는 DateAdd 함수를 사용하여 날짜에 7일을 더해 다음 주의 날짜를 계산합니다.var startDate = Date($feature.dateField);
var oneWeekLater = DateAdd(startDate, 7, 'days');
return oneWeekLater;
SQL 예시
다음 계산에서는 날짜 필드나 SQL 지원 날짜 리터럴 값을 사용하여 시간을 더하거나 뺄 수 있습니다. 첫 번째 계산에서는 날짜 필드를 사용하며 두 번째 계산에서는 날짜 리터럴 값을 사용합니다. 숫자 필드와 숫자 리터럴도 사용할 수 있습니다. 세 번째와 네 번째 계산에서처럼, 필드와 리터럴의 조합이 지원됩니다.<DateField> +/- <NumberField> = updated date
DATE'<SQL-supported Date Literal>' +/- <Number of Days> = updated date
<DateField> +/- <Number of Days> = updated date
DATE'<SQL-supported Date Literal >' +/- <NumberField> = updated date
계산된 날짜 필드는 기존 날짜에서 원하는 만큼의 일수를 더하거나 뺀 값입니다. 일수는 정수이며 분수도 포함될 수 있습니다. 예를 들어 1.5일은 하루와 반나절 또는 36시간을 나타냅니다.
다음 예에서 기계 한 대가 2016년 6월 14일, 오전 10시에 설치되었습니다. 다음과 같은 계산 중 하나를 사용하여 이 설치일로부터 1개월(30일) 이후의 검침일을 생성할 수 있습니다. 첫 번째 계산에서는 값이 6/14/2016인 날짜 필드와 값이 30인 숫자 필드를 사용하는 반면 두 번째 계산에서는 날짜 리터럴과 숫자 리터럴을 사용합니다.<MyDateField> + <MyNumberField> = 7/14/2016 10:00 AM
DATE'6/14/2016' + 30 = 7/14/2016 10:00 AM
두 날짜 간의 기간 계산
두 날짜 사이의 기간을 계산할 수 있습니다. 예를 들어 전기 계량기 설치일과 검침일이 있는 경우 두 날짜 간의 기간을 계산하여 설치일과 검침일 간의 기간이 허용 지침에 속하는지 확인할 수 있습니다. 계산 결과는 날짜 필드가 아니라 숫자 필드입니다.
Arcade 예시
다음 예시에서는 DateDiff 함수를 사용하여 현재 날짜(endDate)와 생일(startDate) 간의 차이를 계산하여 나이를 계산합니다.var startDate = Date($feature.startDateField);
var endDate = Date($feature.endDateField);
var age = DateDiff(endDate, startDate, 'years');
return age;
SQL 예시
날짜 필드와 날짜 리터럴의 조합을 사용하여 두 날짜 간의 기간을 계산할 수 있습니다. 다음의 첫 번째 계산에서는 날짜 필드를 사용하는 반면 두 번째 계산에서는 날짜 리터럴을 사용합니다. 세 번째와 네 번째 계산에서는 날짜 필드와 날짜 리터럴을 둘 다 사용합니다.<DateField1> - <DateField2> = number of days in between
DATE'<SQL-supported Date Literal>' - DATE'< SQL-supported Date Literal>' = number of days in between
<DateField1> - DATE'<SQL-supported Date Literal>' = number of days in between
DATE'<SQL-supported Date Literal>' - <DateField2> = number of days in between
결과는 다른 날짜 필드 또는 리터럴에서 한 날짜 필드 또는 리터럴을 빼서 계산된 숫자 필드입니다. 결과 일수는 정수이며 분수도 포함될 수 있습니다. 예를 들어 1.5일은 하루와 반나절 또는 36시간을 나타냅니다.
앞서 나온 전기 계량기 검침 예에서, 다음과 같은 계산 중 하나를 사용하여 설치일(6/1/2015)과 검침일(10/1/2015) 간의 기간을 계산할 수 있습니다. 첫 번째 계산에서는 날짜 필드를, 두 번째 계산에서는 날짜 리터럴을 그리고 세 번째와 네 번째 계산에서는 날짜 필드와 날짜 리터럴을 둘 다 사용합니다.<InspectionDateField> - <InstallationDateField> = 122 (days)
DATE'10/1/2015' - DATE'6/1/2015' = 122 (days)
<InspectionDateField> - DATE'6/1/2015' = 122 (days)
DATE'10/1/2015' - <InstallationDateField> = 122 (days)
필드 값 계산 시 검토 사항
- Map Viewer Classic에서 레이어 값을 계산하고 레이어에 필터가 있는 경우 필터 조건을 충족하는 레코드만 해당 값이 계산됩니다.
- SQL 식을 작성할 때 필드 계산은 필드 별칭이 아닌 필드 이름으로만 작동합니다. 필드 목록에는 계산에 사용할 수 있는 모든 필드의 이름이 표시됩니다. 이 목록을 문자열, 숫자 및 날짜로 필터링할 수 있습니다.
- 필드 목록에서 필드 이름 위에 마우스를 놓으면 필드 별칭과 필드 유형이 표시됩니다.
- 필드 목록에서 필드 이름을 클릭하면 필드가 식에 추가됩니다.
- 호스팅 피처 레이어의 복사본이나 관련된 타일 레이어가 있는 호스팅 피처 레이어에 대해서는 필드 값을 계산할 수 없습니다.
- 계산된 값은 호스팅 피처 레이어 또는 뷰에서 종속 호스팅 씬 레이어로 전파되지 않습니다.
- 로캘 특정 형식 지정은 SQL 식의 숫자에 지원되지 않습니다. 예를 들어 로캘이 스페인으로 설정된 경우 쉼표 구분 기호 대신 속성 테이블 값에 소수점 구분 기호를 사용해야 합니다.
- 더블 필드에는 숫자 MOD 함수를 사용할 수 없습니다. 예시에서와 같이 필드를 정수로 변환하세요.
- 동기화가 활성화되었거나 피처 생성자 및 편집자를 추적하도록 구성된 호스팅 피처 레이어에 대해서는 Arcade 식을 작성할 수 없습니다.
- 피처 레이어의 항목 페이지에서 다음 필드 데이터 유형의 값을 계산하는 데 Arcade를 사용할 수 없습니다.
- 정수(Big Integer)
- 날짜만
- 시간만
- 타임스탬프 오프셋
비고:
호스팅 피처 레이어의 레이어에 이러한 데이터 유형이 포함된 경우, 지원되지 않는 데이터 유형이 포함되지 않은 하위 레이어를 비롯한 전체 호스팅 피처 레이어에 대해 Arcade 계산이 비활성화됩니다.
표준 SQL (SQL-92) 참조
필드 값을 계산할 SQL 식을 작성할 때는 표준 SQL을 사용합니다. 해당 섹션에는 ArcGIS Online에서 SQL 계산에 사용할 수 있는 연산자 및 SQL 함수 목록이 나와 있습니다.
SQL 식을 생성한 후 계산 버튼을 클릭합니다. 오류가 있는 경우 오류 메시지가 대화 상자의 하단에 나타납니다. 식 구문을 수정한 다음 다시 계산합니다.
연산자
필드 계산 대화 상자에서 더하기, 빼기, 곱하기, 나누기 같은 연산자를 사용하여 간단한 SQL 식을 만들 수 있습니다. 이러한 연산자를 사용하는 예시와 팁은 다음과 같습니다.
- 숫자 필드 SAMPLE에서 모든 값에 100.0을 곱하려면 식에 SAMPLE * 100.0을 입력합니다.
- 더 복잡한 방정식의 경우 계산 순서를 지정하려면 괄호를 사용할 수 있습니다. 예를 들어 SAMPLE * (BASELINE - 40)과 같습니다.
- 계산 연산자는 문자열 필드에서 사용할 수 없습니다. 문자열 함수 섹션에 설명된 문자열 함수를 사용해야 합니다.
- 더블 필드를 정수 필드에 대해 계산하는 경우 CAST 함수가 식에 자동으로 추가될 수 있습니다. 예를 들어 더블 필드 POP을 정수 필드 SAMPLE에 대해 계산하는 경우 식이 CAST(SAMPLE AS FLOAT)로 나타납니다. CAST 함수를 제거하면 안 됩니다. CAST 함수에 대한 자세한 내용은 아래의 숫자 함수를 참고하세요.
- 문자열에 작은따옴표를 포함하려면 작은따옴표 2개를 사용합니다. 예를 들면 'Nightingale''s'와 같습니다. 큰따옴표는 사용하지 마세요.
함수
연산자를 사용하는 간단한 식 외에 함수를 사용하여 SQL 식을 만들 수 있습니다. 함수는 필드 이름, 리터럴 및 다른 함수와 함께 작동합니다. 예를 들어 더블 필드를 계산한다고 가정해 보겠습니다(TOTALPOP을 POP18로 나눔). 어떤 피처에 POP18이 0인 경우 계산에는 0으로 나누기 오류가 발생합니다. 아래에 설명된 NULLIF 함수를 사용하여 이런 오류를 방지할 수 있습니다. 식은 TOTALPOP/NULLIF(POP18, 0)가 됩니다.
함수는 인수를 사용합니다. 다음 테이블에서 인수는 다음과 같을 수 있습니다.
- 필드 이름(단, 문자열, 숫자 또는 날짜 같은 인수 유형과 필드 유형이 일치하는 경우).
- 리터럴, 예를 들어 'Sailboat’(작은따옴표로 묶인 문자열), 숫자 5 또는 MM/DD/YYYY hh:mm:ss 또는 YYYY-MM-DD 형식의 날짜. HH:MM:SS 형식의 시간. 작은따옴표로 묶임.
- 올바른 유형(문자열, 숫자 또는 날짜)의 값을 반환하는 함수. 예를 들어 FLOOR(POWER(SAMP_ERR, 0.5))는 SAMP_ERR의 제곱근보다 작거나 같은 가장 큰 정수를 반환합니다.
다음 테이블의 설명 열에 있는 예의 경우 주로 리터럴 인수를 사용합니다. 이러한 인수를 필드 이름 또는 다른 함수로 대체할 수 있습니다.
날짜 함수
날짜 필드에 대해 몇 가지 계산을 수행할 수 있습니다. 예를 들어 날짜 필드에 시간을 더하고 빼거나 두 날짜 필드 간의 기간을 계산할 수 있습니다.
날짜 필드를 사용하기 전에 이러한 중요 검토 사항을 참고하세요.
날짜 필드를 계산하는 경우 날짜/숫자 필드와 리터럴의 조합을 사용할 수 있습니다. 날짜 리터럴을 사용하는 경우 SQL 지원 날짜 형식을 사용해야 합니다.
다음과 같은 날짜 함수를 사용할 수 있습니다.
함수 | 설명 |
---|---|
CURRENT_DATE() | UTC 시간의 현재 날짜를 반환합니다. 표시되는 값은 사용 중인 클라이언트에 따라 다릅니다. ArcGIS Online에서 날짜는 기관 또는 프로필의 표준 시간대로 표시됩니다. |
CURRENT_TIME() | 현재 UTC 날짜와 시간(시, 분, 초)을 반환합니다. 표시되는 값은 사용 중인 클라이언트에 따라 다릅니다. ArcGIS Online에서 시간은 기관 또는 프로필의 현지 시간대로 표시됩니다. |
CURRENT_TIMESTAMP() | 현재 UTC 날짜와 시간(시, 분, 초, 밀리초)을 반환합니다. 표시되는 값은 사용 중인 클라이언트에 따라 다릅니다. ArcGIS Online에서 시간은 기관 또는 프로필의 현지 시간대로 표시됩니다. |
EXTRACT(<unit> FROM <date>) | 지정된 <date>의 싱글파트(<unit>)를 반환합니다. 가능한 <unit> 값에는 year, month, day, hour, minute가 포함되지만 이에 국한되지는 않습니다. 다음 예시는 날짜 시간 값 2016-12-21 15:11에서 서로 다른 단위를 추출합니다.
|
숫자 함수
함수 | 설명 |
---|---|
ABS(<number>) | 지정하는 숫자 식의 절대값(양수)을 반환합니다. |
CAST(<number> AS FLOAT | INT) | 숫자를 다른 유형으로 변환합니다. FLOAT는 지정된 숫자를 더블로 변환하고 INT는 정수로 변환합니다. 아래의 첫 번째 예시에서는 숫자가 정수로 변환됩니다. 결과는 정수인 1,424입니다. 두 번째 예시에서는 정수가 실수로 변환되어, 결과는 소수 자릿수가 있는 숫자인 1,424.0입니다.
|
CEILING(<number>) | 지정된 숫자보다 크거나 동일한 가장 작은 정수를 반환합니다. 다음 예시에서는 13을 반환합니다. CEILING(12.93) |
COS(<number>) | <number>의 삼각법 코사인을 반환하며 이는 라디안의 각도로 간주됩니다. |
FLOOR(<number>) | 숫자보다 작거나 동일한 가장 큰 정수를 반환합니다. 다음 예시에서는 12를 반환합니다. FLOOR(12.93) |
LOG(<number>) | 지정된 숫자의 자연 로그를 반환합니다. |
LOG10(<number>) | 지정된 숫자의 기본 -10 로그를 반환합니다. |
MOD(<number>, <n>) | 피제수(<number>)를 제수<n>로 나눈 후 나머지를 반환합니다. <n> 및 <number>는 둘 다 정수여야 합니다. 예시는 다음과 같습니다.
|
NULLIF(<number>, <value>) | 지정한 숫자가 지정된 값과 동일한 경우 null을 반환합니다. NULLIF는 일반적으로 <value>를 0으로 설정하여 0으로 나누기 오류를 방지하는 데 사용됩니다. 계산에서 인수 중 하나에 null 필드 값이 있는 경우 계산 결과는 null이 됩니다. 예를 들어 더블 필드를 계산한다고 가정해 보겠습니다(TOTALPOP을 POP18로 나눔). 어떤 피처에 POP18 값이 0인 경우 계산에는 0으로 나누기 오류가 발생합니다. 필터를 생성하여 POP18이(가) 0인 경우 레코드를 숨긴 다음 계산을 수행할 수 있습니다. 간단한 방법은 NULLIF를 사용하는 것입니다. TOTALPOP / NULLIF(POP18, 0) — POP18이(가) 0이면 null을 반환하고 그렇지 않으면 TOTALPOP / POP18의 값을 반환합니다. |
POWER(<number> , <y>) | 지정한 숫자의 값을 지정된 거듭제곱으로 반환합니다(<y>). 다음 예시에서는 32,768을 반환합니다. POWER(8,5) |
ROUND(<number> , <length>) | 지정된 길이로 지정하는 숫자를 반올림합니다. <length>에 양수를 사용하면 숫자는 소수점의 오른쪽에 있는 소수 자릿수로 반올림됩니다. <length>이(가) 음수이면 지정된 <number>이(가) 소수점의 왼쪽에서 반올림됩니다. 예시는 다음과 같습니다.
|
SIN(<number>) | 지정된 <number>의 사인값을 반환하며, 이는 라디안의 각도로 간주됩니다. |
TAN(<number>) | 지정된 <number>의 탄젠트 값을 반환하며, 이는 라디안의 각도로 간주됩니다. |
TRUNCATE(<number>,<decimal_place>) | 지정된 <decimal_place>에서 <number>를 버립니다. 양의 <decimal_place>는 지정된 소수점까지 버립니다. <decimal_place>가 음수이면 <number>가 소수점의 왼쪽에서 버립니다. 첫 번째 예시에서는 소수 자릿수 오른쪽에 있는 숫자가 숫자 2개만 포함하도록 잘려, 결과로 나타나는 값은 111.99입니다. 두 번째 예시에서는 소수 자릿수 왼쪽에 있는 숫자가 잘려, 결과로 나타나는 값은 100.00입니다.
|
문자열 함수
함수 | 설명 |
---|---|
CAST(<string> AS DATE | TIME) | 문자열 값이 지원되는 형식인 경우 문자열을 날짜 또는 시간으로 변환합니다. 문자열이 'MM/DD/YYYY hh:mm:ss' 또는 'YYYY-MM-DD' 형식인 경우 날짜로 변환할 수 있습니다. 문자열이 'HH:MM:SS' 형식인 경우 시간 전용 데이터 유형(TIME)으로 변환할 수 있습니다. 예를 들어, 다음 문자열은 날짜로 변환할 수 있습니다. CAST('1988-05-30' AS DATE) |
CHAR_LENGTH(<string>) | 지정된 문자열의 문자 수를 반환합니다. 결과는 정수입니다. 예를 들어, 다음 문은 8을 반환합니다. CHAR_LENGTH('Redlands') |
CONCAT(<string1>, <string2>) | 두 개의 문자열 값을 연결합니다. 두 문자열만 제공할 수 있습니다. 두 개가 넘는 문자열을 연결하려면 아래와 같이 연속 CONCAT 함수를 중첩합니다. 아래의 첫 번째 예시에서는 문자 A 및 B를 연결합니다. 두 번째 예시에서는 세 개의 문자열 값인 A, :, B를 연결하기 위한 중첩된 CONCAT 함수가 표시됩니다.
Null 값은 빈 문자열로 변환됩니다. |
CURRENT_USER | 쿼리에 CURRENT_USER 함수가 포함된 경우 변수와 유사한 역할을 합니다. 호스팅 피처 레이어 또는 호스팅 피처 레이어 뷰에 접근하는 사용자의 사용자 이름이 식별되고 쿼리에 사용됩니다. 예를 들어, planner3이라는 사용자가 다음 쿼리 정의가 포함된 호스팅 피처 레이어 뷰에 접근하기 위해 기관에 로그인한 경우, 연결된 사용자에게는 staffmember 필드에 planner3 값이 포함된 피처만 반환됩니다. staffmember=current_user 다음 예시에서는 staffmember 필드에 여러 값이 저장되어 있습니다. 다음 where 절은 필드에 여러 사용자 이름이 저장되어 있는 경우에도 staffmember의 텍스트 값에서 현재 사용자 이름을 찾습니다. where=position(current_user in staffmember)>0 |
POSITION(<substring>, <string>) | 지정하는 문자열에서 하위 문자열이 처음 나타나는 위치를 반환합니다. 지정한 하위 문자열이 발견되지 않으면 결과는 0입니다. 아래의 첫 번째 예시에서는 하위 문자열(boat)의 첫 번째 문자(b)가 문자열(Sailboat)의 다섯 번째 문자이므로 결과는 5입니다. 두 번째 예시에서는 하위 문자열(motor)이 문자열에 없으므로 결과는 0입니다.
|
SUBSTRING(<string>, <start>, <length>) | 문자열 값의 일부를 반환합니다. <start>는 반환된 문자의 시작 위치를 지정하는 정수 색인이고 <length>는 반환되는 문자의 수입니다. 예를 들면 다음과 같습니다.
|
TRIM(BOTH | LEADING | TRAILING ' ' FROM <string>) | 지정하는 문자열에서 모든 선행 또는 후행 공백이 제거된 문자열을 반환합니다. 다음 예시에서는 San Bernardino 문자열 앞뒤에 공백이 있습니다. BOTH 키워드는 텍스트 문자열의 시작 부분과 끝부분에서 공백 문자열(작은따옴표 두 개와 그 사이의 공백으로 나타냄)을 자르는 데 사용됩니다. TRIM(BOTH ' ' FROM ' San Bernardino ') 그러면 'San Bernardino' 문자열이 반환됩니다. |
UPPER(<string>) | 모든 문자가 대문자로 변환된 문자열을 반환합니다. 이 예시에서는 Sailboat 문자열의 모든 문자가 대문자로 변환되어, 결과로 나타나는 문자열은 'SAILBOAT'입니다. UPPER('Sailboat') |
LOWER(<string>) | 모든 문자가 소문자로 변환된 문자열을 반환합니다. 다음 예시에서는 'sailboat'가 반환됩니다. LOWER('Sailboat') |