Skip To Content

필드 값 계산

필드 계산을 통해 호스팅 피처 레이어 소유자 또는 기관 관리자는 레이어 속성 테이블에 있는 단일 필드의 모든 행 값을 변경할 수 있습니다.

예를 들어 부동산 매매에 대한 정보(부동산 매매 가격 및 세율 포함)를 저장하는 호스팅 피처 레이어가 있는 경우 레이어에 필드를 추가하여 예상되는 재산세를 저장할 수 있습니다. estimated_property_taxes 필드를 채우려면 sale_price 필드의 값을 가져와서 tax_rate 값을 곱하는 필드에 대한 계산 식을 정의합니다.

다음과 같은 두 가지 옵션으로 호스팅 피처 레이어에 포함된 레이어에 필드 계산 식을 작성할 수 있습니다.

  • ArcGIS Arcade - Arcade는 SQL보다 더 다양한 기능이 필요한 계산에 적합합니다. Arcade는 속성 값 및 피처 지오메트리에 접근할 수 있으므로 공간 연산이 포함된 식을 작성할 수 있습니다. 또한 특정 행을 계산할 때 오류가 발생한 경우 계산을 중지하고 문제를 해결한 후 계산을 다시 시작할 수 있습니다.

    비고:

    계산에 Arcade를 사용하려면 레이어에서 편집을 활성화해야 하지만 레이어에서 동기화를 활성화할 수 없습니다. 편집 변경 및 설정 동기화에 대한 자세한 내용은 호스팅 피처 레이어 관리를 참고하세요.

  • SQL - SQL을 사용하면 비공간 속성에 대해 표준화된 SQL(SQL-92) 식으로 수행할 수 있는 계산을 가장 빠르게 수행할 수 있습니다. 동기화가 활성화된 호스팅 피처 레이어와 피처 생성자 및 편집자를 추적하도록 구성된 레이어에 대해 SQL을 실행할 수 있습니다. 하지만 이러한 레이어에서 Arcade 식을 실행할 수 없습니다.

다음 섹션에는 호스팅 피처 레이어의 세부정보 페이지에서 필드 값을 계산하는 방법이 나와 있습니다. 후속 섹션에서는 일반적인 계산 예시가 제공됩니다.

필드 값 계산

필드에서 문자열, 숫자 또는 날짜 필드 값을 계산하려면 다음 단계를 따릅니다.

비고:
필드 계산은 실행 취소할 수 없습니다. 따라서 필드를 추가하고 필드에 값을 계산한 후 원하는 계산인지 확인하는 것이 좋습니다. 원하는 계산인 경우 기존 필드를 계산하여 추가된 필드와 동일하게 만들 수 있습니다. 기존 필드의 값이 올바른지 확인한 후에 추가한 필드를 삭제할 수 있습니다.

  1. 레이어의 항목 페이지에서 데이터 탭을 클릭하여 테이블을 표시합니다.
    팁:

    또한 Map Viewer(이전에는 별도 베타로 설치되었지만 현재는 기본 설정에 따라 포털에 포함됨) 또는 Map Viewer Classic의 테이블에서 다음 단계를 수행할 수 있습니다.

  2. 계산하려는 값이 포함된 열을 클릭합니다.
  3. 다음 중 하나를 수행하여 필드 계산 대화 상자를 엽니다.
    • 계산을 클릭합니다.
    • 상세 보기 나타내기 > 계산을 클릭합니다.
  4. 계산에 사용할 언어를 아케이드SQL 중에서 선택합니다.

    동기화가 활성화되었거나 피처를 생성하거나 업데이트한 사용자를 추적하도록 구성된 호스팅 피처 레이어의 경우 해당 페이지는 표시되지 않습니다. 대신 SQL 창이 나타납니다.

  5. 계산 식을 작성합니다.
    • SQL의 경우 기본 연산자, 필드 목록, 함수를 사용합니다. 유효성 검사 버튼을 클릭하여 식에 오류가 없는지 확인합니다. 식이 잘못된 경우 제거 버튼을 클릭하여 새 식을 작성합니다. 식이 올바르게 작성된 경우 계산을 클릭합니다.
    • Arcade의 경우 전역 변수, 함수, 상수를 사용합니다. 확인을 클릭하여 식을 실행합니다. 식 실행 중에 오류가 발생하면 오류 검토를 클릭하여 오류를 수정할 수 있는 식 창을 열 수 있습니다. 그렇지 않으면 취소를 클릭합니다. 식을 수정하여 다시 실행하면 계산이 다시 시작됩니다.

계산이 완료되는 데 걸리는 시간은 식의 복잡성 및 레이어의 피처 수에 따라 다릅니다.

계산 예시

다음 섹션에는 ArcGIS Enterprise에서 일반적인 계산을 수행하기 위한 예시 구문이나 방법이 나와 있습니다.

두 기존 필드의 숫자 값에 대한 수학 연산을 수행하여 세 번째 필드를 채웁니다.

가장 일반적인 계산 방법 중 하나는 피처 레이어의 기존 값을 기반으로 새로운 숫자 값을 계산하는 것입니다. 예를 들어, 모든 스토어의 당해 및 다음 해의 매출 총액을 통해 이윤 변동을 파악하거나 18세 미만의 총 거주자 수를 총 인구로 나누어 18세 미만의 인구 비율을 파악할 수 있습니다.

Arcade 예시

두 숫자 필드(Sales2016 및 Sales2017) 값의 차이를 계산하여 숫자 필드를 채웁니다.

$feature.Sales2016 - $feature.Sales2017

SQL 예시

숫자 필드(SalesDifference)에 대한 계산을 사용하여 두 숫자 필드(Sales2016 및 Sales2017) 값의 차이를 계산합니다.

Sales2016 - Sales2017

인구 중 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")

Map Viewer Classic에서 필터 사용

Arcade 식을 사용하지 않으려면 맵의 레이어에 필터 적용, 필터링된 피처 값 계산, 해당 필터 제거, 다른 값을 기반으로 다른 필터 적용, 해당 필드의 값 계산을 수행하면 됩니다. 이 작업은 다음 단계에 설명되어 있습니다.

예를 들어 코드(3, 2, 1)를 사용하여 스토어 유형을 기록하는 숫자 필드가 있으며 이러한 코드가 각각 나타내는 내용(체인, 프랜차이즈, 개별)이 적힌 문자열 필드를 원할 경우 레이어에 문자열 필드 추가, 맵에 레이어 추가, 각 코드 값 필터링, 문자열 필드 값 계산을 수행할 수 있습니다.

  1. 호스팅 피처 레이어에 문자열 필드를 추가합니다. 가장 긴 문자열을 포함할 수 있도록 길이를 설정합니다.

    스토어 유형 예시에서 새 필드 이름은 TypeFull입니다.

  2. 레이어 세부정보 페이지의 오버뷰 탭에서 Map Viewer Classic에서 열기를 클릭합니다.
  3. 동일한 유형의 피처만 맵에 표시되도록 레이어에 대한 필터를 정의합니다.

    스토어 예시의 경우 StoreCode 필드 값이 3인 피처만 반환하는 필터를 적용합니다.

  4. 레이어의 속성 테이블을 엽니다.
  5. 1단계에서 추가한 필드의 이름을 클릭하고 계산을 클릭합니다.

    해당 예시의 경우 TypeFull 이름을 클릭하고 계산을 클릭합니다.

  6. 이러한 피처에 대해 해당 필드에 삽입할 문자열을 입력합니다. 문자열은 작은따옴표로 묶어야 합니다.

    'chain'을 입력하여 StoreCode 값이 3인 모든 피처에 대한 TypeFull 필드를 채웁니다.

  7. 계산을 클릭합니다.
  8. 3단계에서 정의한 필터를 제거합니다. 레이어에 대한 필터 창을 다시 열어 필터 제거를 클릭합니다.
  9. 계산해야 할 나머지 값에 대해 3~8단계를 반복합니다.

    스토어 예시의 경우 StoreCode2인 필터를 정의하고 스토어 'franchise'에 대한 TypeFull을 계산합니다. 해당 필터를 제거하고 StoreCode1인 새 필터를 정의한 다음 스토어 'independent'에 대한 TypeFull을 계산합니다.

  10. 새 필드 값 계산을 마치면 맵을 저장하지 않고 맵을 닫습니다.

한 값을 다른 값으로 바꾸기

변경된 특정 값을 나타내거나 잘못 입력된 값을 수정하는 등 기존 값을 다른 값으로 바꿔야 하는 경우 필드의 기존 값을 모두 찾은 다음 새 값으로 바꿀 수 있습니다. SQL 계산 인터페이스에서는 해당 방법이 지원되지 않으므로 이러한 유형의 계산에는 Arcade를 사용해야 합니다.

주의:

계산은 피처 레이어에 즉시 저장됩니다. 기존 값을 실수로 덮어쓴 경우에는 다시 계산하여 값을 되돌려야 합니다.

Arcade 예시

다음 예시에서는 Replace 함수를 사용하여 영국식 철자(컬러)를 미국식 철자로 변경합니다.

Replace($feature.color, 'colour', 'color')

Map Viewer Classic에서 필터 사용

다른 필드의 값을 기반으로 필드를 채우는 방법과 마찬가지로, 바꾸려는 필드 값이 포함된 피처만 반환하는 필터를 맵의 레이어에 적용할 수 있습니다. 다음으로 필터링된 필드를 새 값으로 설정하여 필드 값을 업데이트합니다.

예를 들어 잘못 입력한 값을 수정하거나 단어를 약어로 변환해야 할 경우 변경해야 할 리터럴 문자열을 필터링하고 필드를 새 값으로 설정합니다.

  1. 업데이트해야 할 호스팅 피처 레이어Map Viewer Classic에 추가합니다.

    해당 레이어의 소유자이거나 포털 관리자여야 합니다.

  2. 바꾸려는 값이 포함된 피처만 맵에 표시되도록 레이어에 대해 필터를 정의합니다.

    예를 들어 StreetType 필드의 값이 Crt인 피처가 여러 개 있는 경우 StreetType 필드 값이 Crt인 피처만 반환하는 필터를 적용합니다.

  3. 레이어의 속성 테이블을 엽니다.
  4. 필드 이름을 클릭한 다음 계산을 클릭합니다.

    해당 예시의 경우 StreetType 필드를 클릭하고 계산을 클릭합니다.

  5. 이러한 피처에 대해 해당 필드에 삽입할 문자열을 입력합니다. 문자열은 작은따옴표로 묶어야 합니다.

    필터링된 StreetType 필드에 채워질 수정된 Court 약어인 'Ct'를 입력합니다.

  6. 계산을 클릭하여 변경 내용을 필터링된 필드에 적용합니다.
  7. 맵을 저장하지 않고 닫습니다.

피처 면적당 숫자 속성 밀도 확인

특정 면적 내 한 속성의 밀도를 계산하려면 계산 인터페이스로 공간 필드에 대한 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 예시

INTERVAL 쿼리를 사용하여 다음 계산에 나온 것처럼 날짜 필드에 시간을 더하거나 날짜 필드에서 시간을 뺄 수 있습니다. 첫 번째 예시에서는 날짜에 3일을 더하여 새 날짜를 만듭니다. 두 번째 예시에서는 타임스탬프 필드에서 3일을 뺍니다.

<DateField> + INTERVAL '3'DAY = updated date
<DateField> - INTERVAL '3 00:00:60' DAY TO SECOND = updated date

다음 날짜 및 시간 값과 함께 INTERVAL을 사용할 수 있습니다.

  • DAY
  • HOUR
  • MINUTE
  • SECOND
  • DAY TO HOUR
  • DAY TO MINUTE
  • DAY TO SECOND
  • HOUR TO MINUTE
  • HOUR TO SECOND
  • MINUTE TO SECOND

두 날짜 간의 기간 계산

두 날짜 사이의 기간을 계산할 수 있습니다. 예를 들어 전기 계량기 설치일과 검침일이 있는 경우 두 날짜 간의 기간을 계산하여 설치일과 검침일 간의 기간이 허용 지침에 속하는지 확인할 수 있습니다. 계산 결과는 날짜 필드가 아니라 숫자 필드입니다.

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의 레이어에 필터가 있는 경우 필터 조건을 충족하는 레코드만 해당 값이 계산됩니다.
  • SQL 식을 작성할 때 필드 계산은 필드 별칭이 아닌 필드 이름으로만 작동합니다. 필드 목록에는 계산에 사용할 수 있는 모든 필드의 이름이 표시됩니다. 이 목록을 문자열, 숫자날짜로 필터링할 수 있습니다.
    • 필드 목록에서 필드 이름 위에 마우스를 놓으면 필드 별칭과 필드 유형이 표시됩니다.
    • 필드 목록에서 필드 이름을 클릭하면 필드가 식에 추가됩니다.
  • 호스팅 피처 레이어, 관련 타일 레이어가 있는 호스팅 피처 레이어, 호스팅 시공간 피처 레이어 또는 호스팅 시공간 피처 레이어에서 생성된 뷰의 복사본에서는 필드 값을 계산할 수 없습니다.
  • 필드 값을 계산할 때 표준화된 SQL 쿼리만 지원됩니다.
  • 더블 필드에는 숫자 MOD 함수를 사용할 수 없습니다. 예시에서와 같이 필드를 정수로 변환하세요.
  • 동기화가 활성화되었거나 피처 생성자 및 편집자를 추적하도록 구성된 호스팅 피처 레이어에 대해서는 Arcade 식을 작성할 수 없습니다.

표준 SQL (SQL-92) 참조

필드 값을 계산할 SQL 식을 작성할 때는 표준 SQL을 사용합니다. 해당 섹션에는 ArcGIS Enterprise에서 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 식을 만들 수 있습니다. 함수는 필드 이름, 리터럴 및 다른 함수와 함께 작동합니다. 예를 들어 더블 필드를 계산한다고 가정해 보겠습니다(TOTALPOPPOP18로 나눔). 어떤 피처에 POP18이 0인 경우 계산에는 0으로 나누기 오류가 발생합니다. 아래에 설명된 NULLIF 함수를 사용하여 이런 오류를 방지할 수 있습니다. 식은 TOTALPOP/NULLIF(POP18, 0)가 됩니다.

함수는 인수를 사용합니다. 다음 테이블에서 인수는 다음과 같을 수 있습니다.

  • 필드 이름(단, 문자열, 숫자 또는 날짜 같은 인수 유형과 필드 유형이 일치하는 경우).
  • 리터럴. 예를 들어 'Sailboat’(작은따옴표로 묶인 문자열), 숫자 5 또는 MM/DD/YYYY hh:mm:ss 형식의 날짜. 작은따옴표로 묶임.
  • 올바른 유형(문자열, 숫자 또는 날짜)의 값을 반환하는 함수. 예를 들어 FLOOR(POWER(SAMP_ERR, 0.5))SAMP_ERR의 제곱근보다 작거나 같은 가장 큰 정수를 반환합니다.

다음 테이블의 설명 열에 있는 예의 경우 주로 리터럴 인수를 사용합니다. 이러한 인수를 필드 이름 또는 다른 함수로 대체할 수 있습니다.

날짜 함수

날짜 필드에 대해 몇 가지 계산을 수행할 수 있습니다. 예를 들어 날짜 필드에 시간을 더하고 빼거나 두 날짜 필드 간의 기간을 계산할 수 있습니다.

날짜 필드를 사용하기 전에 이러한 중요 검토 사항을 참고하세요.

날짜 필드를 계산하는 경우 날짜/숫자 필드와 리터럴의 조합을 사용할 수 있습니다. 날짜 리터럴을 사용하는 경우 SQL 지원 날짜 형식을 사용해야 합니다.

다음과 같은 날짜 함수를 사용할 수 있습니다.

기능설명

CURRENT_DATE

UTC 시간의 현재 날짜를 반환합니다.

클라이언트에 나타나는 내용은 사용 중인 클라이언트에 따라 다릅니다. 포털 웹사이트에서 날짜는 브라우저의 표준 시간대로 표시됩니다.

다음 예시에서는 오늘 이후의 날짜를 갖는 모든 값이 inspection_date 필드에 반환됩니다.

inspection_date > CURRENT_DATE

CURRENT_TIMESTAMP

현재 UTC 날짜와 시간(시, 분, 초)을 반환합니다.

클라이언트에 나타나는 내용은 사용 중인 클라이언트에 따라 다릅니다. 포털 웹사이트에서 시간은 브라우저의 현지 시간대로 표시됩니다.

다음 예시에서는 오늘 날짜 및 현재 시간(UTC) 이전의 모든 타임스탬프 값이 appointments 필드에 반환됩니다.

appointments < CURRENT_TIMESTAMP

EXTRACT(<unit> FROM '<date>')

지정된 <unit>의 싱글파트(<date>)를 반환합니다. 가능한 <unit> 값에는 년, 월, 일, 시간, 분이 포함되지만 이에 국한되지는 않습니다.

예시는 다음과 같습니다.

  • EXTRACT(MONTH FROM '12-21-2016')- 12를 반환합니다.
  • EXTRACT(DAY FROM '12-21-2016 12:00')- 21을 반환합니다.
  • EXTRACT(HOUR FROM '12-21-2016 15:00:44')- 15를 반환합니다.

숫자 함수

기능설명

ABS(<number>)

지정하는 숫자 식의 절대값(양수)을 반환합니다.

CEILING(<number>)

지정된 숫자보다 크거나 동일한 가장 작은 정수를 반환합니다.

사례

  • CEILING(12.93) - 결과는 13입니다.

COS(<number>)

<number>의 삼각법 코사인을 반환하며 이는 라디안의 각도로 간주됩니다.

CAST(<number>AS FLOAT | INT)

숫자를 다른 유형으로 변환합니다. FLOAT는 숫자를 더블로 변환하고 INT는 정수로 변환합니다.

FLOOR(<number>)

숫자보다 작거나 동일한 가장 큰 정수를 반환합니다.

사례

  • FLOOR(12.93) - 결과는 12입니다.

LN(<number>,<decimal_place>)

지정된 숫자의 자연 로그를 반환합니다.

LOG(<number>,<decimal_place>)

지정된 숫자의 기본 -10 로그를 반환합니다.

MOD(<number>, <n>)

피제수(<number>)를 제수<n>로 나눈 후 나머지를 반환합니다. <n> 및 <number>는 둘 다 정수여야 합니다.

예시는 다음과 같습니다.

  • MOD(10, 4) - 결과는 2입니다.
  • MOD(CAST(DBLFIELD AS INT), 4) - DBLFIELD는 더블 필드이므로 더블에서 정수로 값을 변환하는 데 CAST 함수가 필요합니다.

NULLIF(<number>, <value>)

지정한 숫자가 지정된 값과 동일한 경우 null을 반환합니다. NULLIF는 일반적으로 <value>를 0으로 설정하여 0으로 나누기 오류를 방지하는 데 사용됩니다.

인수 중 하나에 null 필드 값이 있는 경우 계산 결과는 null이 됩니다.

예를 들어 더블 필드를 계산한다고 가정해 보겠습니다(TOTALPOPPOP18로 나눔). 어떤 피처에 POP18 값이 0인 경우 계산에는 0으로 나누기 오류가 발생합니다. 필터를 생성하여 POP18이 0인 경우 레코드를 숨긴 다음 계산을 수행할 수 있습니다. 간단한 방법은 NULLIF을(를) 사용하는 것입니다.

  • TOTALPOP / NULLIF(POP18, 0) - POP18이 0이면 null을 반환하고 그렇지 않으면 TOTALPOP / POP18의 값을 반환합니다.

POWER(<number> , <y>)

지정한 숫자의 값을 지정된 거듭제곱으로 반환합니다(<y>).

ROUND(<number> , <length>)

지정된 길이로 지정하는 숫자를 반올림합니다.

<length>에 양수를 사용하면 숫자는 <length>에 따라 지정된 소수점에서 반올림됩니다. <length>가 음수이면 지정된 <number>가 소수점의 왼쪽에서 반올림됩니다.

사례

  • ROUND(10.9934,2)- 10.99를 반환합니다.
  • ROUND(10.9964,2)- 11.00을 반환합니다.
  • ROUND(111.0,-2)- 100.00을 반환합니다.

SIN(<number>)

지정된 <number>의 사인 값을 반환하며, 이는 라디안의 각도로 간주됩니다.

TAN(<number>)

지정된 <number>의 탄젠트 값를 반환하며, 이는 라디안의 각도로 간주됩니다.

TRUNC(<number>,<decimal_place>)

지정된 <number>에서 <decimal_place>를 버립니다.

양의 <decimal_place>는 지정된 소수점까지 버립니다. <decimal_place>가 음수이면 <number>가 소수점의 왼쪽에서 버립니다.

사례

  • TRUNC(111.996,2) - 111.99를 반환합니다.
  • TRUNC(111.996,-2)- 100.00을 반환합니다.

문자열 함수

기능설명

CHAR_LENGTH(<string>)

지정된 문자열의 문자 수를 반환합니다. 그 결과는 정수입니다.

사례

  • CHAR_LENGTH('Redlands') - 결과는 8입니다.

CONCAT(<string1>, <string2>)

두 개의 문자열 값을 연결합니다.

두 문자열만 제공할 수 있습니다. 두 개가 넘는 문자열을 연결하려면 아래와 같이 연속 CONCAT 함수를 중첩합니다.

사례

  • CONCAT('A', 'B') - 결과는 'AB'입니다.
  • CONCAT('A', CONCAT(':', 'B')) - 결과는 'A:B'입니다.

Null 값은 빈 문자열로 변환됩니다.

POSITION(<substring> in <string>)

지정하는 문자열에서 하위 문자열이 처음 나타나는 위치를 반환합니다. 지정한 하위 문자열이 발견되지 않으면 결과는 0입니다.

사례

  • POSITION('boat'in 'Sailboat') - 결과는 5입니다.
  • POSITION('motor'in 'Sailboat') - 결과는 0입니다.

SUBSTRING(<string>, <start>, <length>)

문자열 값의 일부를 반환합니다. <start>는 반환된 문자의 시작 위치를 지정하는 정수 색인이고 <length>는 반환되는 문자의 수입니다.

사례

  • SUBSTRING('Sailboat', 5, 4) - 결과는 'boat'입니다.
  • SUBSTRING('Sailboat', 1, 4) - 결과는 'Sail'입니다.
  • SUBSTRING('Sailboat', 5, 100) - 결과는 'boat'입니다.

TRIM(BOTH | LEADING | TRAILING ' ' FROM <string>)

지정하는 문자열에서 모든 선행 또는 후행 공백이 제거된 문자열을 반환합니다.

사례

  • TRIM(BOTH ' ' FROM ' San Bernardino ') - 결과는 'San Bernardino'입니다.

두 번째 인수는 중간에 공백이 있는 작은따옴표 두 개임을 유의해야 합니다.

UPPER(<string>)

모든 문자가 대문자로 변환된 문자열을 반환합니다.

사례

  • UPPER('Sailboat') - 결과는 'SAILBOAT'입니다.

LOWER(<string>)

모든 문자가 소문자로 변환된 문자열을 반환합니다.

사례

  • LOWER('Sailboat') - 결과는 'sailboat'입니다.