Skip To Content

필드 값 계산

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

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

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

  • 아케이드 - 아케이드는 SQL보다 더 다양한 기능이 필요한 계산에 적합합니다. 아케이드는 속성 값 및 피처 지오메트리에 접근할 수 있으므로 공간 연산이 포함된 식을 작성할 수 있습니다. 또한 특정 행을 계산할 때 오류가 발생한 경우 계산을 중지하고 문제를 해결한 후 계산을 다시 시작할 수 있습니다.
  • SQL - SQL을 사용하면 비공간 속성에 대해 표준화된 SQL(SQL-92) 식으로 나타낼 수 있는 계산을 가장 빠르게 수행할 수 있습니다. 동기화가 활성화된 호스팅 피처 레이어와 피처 생성자 및 편집자를 추적하도록 구성된 레이어에 대해 SQL을 실행할 수 있습니다. 하지만 이러한 레이어에서 아케이드 식을 실행할 수 없습니다.

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

필드 값 계산

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

비고:
필드 계산은 실행 취소할 수 없습니다. 따라서 필드를 추가하고 필드에 값을 계산한 후 원하는 계산인지 확인하는 것이 좋습니다. 원하는 계산인 경우 기존 필드를 계산하여 추가된 필드와 동일하게 만들 수 있습니다. 기존 필드의 값이 올바른지 확인한 후에 추가한 필드를 삭제할 수 있습니다.
  1. 레이어의 항목 페이지에서 데이터 탭을 클릭하여 테이블을 표시합니다.
    비고:

    또한 Map Viewer의 테이블에서 이러한 단계를 수행할 수 있습니다.

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

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

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

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

계산 예시

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

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

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

아케이드 예시

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

$feature.Sales2016 - $feature.Sales2017

SQL 예시

인구 중 18세 미만의 비율을 계산한 결과에 해당하는 소수로 숫자 필드를 채웁니다.

PopUnder18/TotalPop

기존 필드의 문자열 값을 새 문자열 필드로 연결

기존 문자열 필드의 값을 조합하여 새 필드를 채우는 계산 방법도 있습니다. 예를 들어, 호텔의 룸 위치에 대한 문자열 필드(Floor와 Room)가 있으며, 이러한 두 문자열 필드를 하나의 문자열 필드로 합칠 수 있습니다.

다음 예시에서 Floor 및 Room 필드의 값이 단일 필드에 합쳐집니다.

아케이드 예시

Concatenate($feature.room,$feature.floor)

SQL 예시

CONCAT(Floor,Room)

문자열 필드의 선행/후행 공백 제거

편집을 위해 필드에 값을 입력하거나 붙여넣을 때 실수로 텍스트에 선행/후행 공백이 삽입될 수 있습니다. 값 자르기를 통해 이러한 공백 오류를 지울 수 있습니다.

다음 예시에서는 편집자가 New Hampshire를 주 이름 저장 필드에 붙여넣을 때 후행 공백이 추가되었으므로 문자열 끝에 있는 공백을 자릅니다.

아케이드 예시

Trim('New Hampshire ')

SQL 예시

Trim(TRAILING ' ' FROM 'New Hampshire ')

다른 필드의 값에 따라 다른 값으로 필드 채우기

경우에 따라 ArcGIS Online에서 필드에 작성하는 값은 피처별로 다르며 동일한 피처의 값에 따라 다를 수 있습니다. 예를 들어 문자열 필드를 피처 레이어에 추가하여 다른 필드의 숫자 값 또는 축약형 문자열 값을 나타내는 텍스트를 저장할 수 있습니다. ArcGIS Online의 SQL 계산 인터페이스에서는 해당 방법이 지원되지 않으므로 이러한 유형의 계산에는 아케이드를 사용해야 합니다.

아케이드 예시

다음 예시에서는 레이어의 다른 필드(HowMany)에 있는 수에 따라 다른 문자열 값(없음, 낮음, 높음, 기타)을 텍스트 필드에 기록합니다.

When(
  $feature.HowMany == 0, "None",
  $feature.HowMany == 1, "Low",
  $feature.HowMany == 2,  "High",
"Other")

한 값을 다른 값으로 바꾸기

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

주의:

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

아케이드 예시

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

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

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

특정 면적 내 한 속성의 밀도를 계산하려면 ArcGIS Online의 계산 인터페이스로 공간 필드에 대한 SQL 계산을 수행할 수 없으므로 아케이드 식을 사용해야 합니다.

아케이드 예시

다음 예시에서는 총 인구 값(TotalPop)을 폴리곤 피처의 면적(제곱마일)으로 나누어 피처당 인구 밀도를 계산합니다.

$feature.TotalPop / Area ($feature,
'square-miles')

포인트 피처의 좌표 파생

아케이드 식을 사용하여 포인트만 포함된 호스팅 피처 레이어의 공간 필드에 대해 위도 또는 경도 좌표를 반환할 수 있습니다.

공간 필드에 대한 이러한 유형의 계산은 ArcGIS Online의 계산 인터페이스에서 지원되지 않습니다.

아케이드 예시

다음 예시에서는 Geometry 함수를 사용하여 포인트 레이어에 있는 각 포인트의 x좌표에 대한 필드를 계산합니다.

Geometry($feature).x

날짜에 시간 더하기 또는 빼기

날짜 필드나 날짜 리터럴 값을 사용하여 시간을 더하거나 빼서 업데이트된 날짜 필드를 생성할 수 있습니다. 예를 들어 날짜에 시간을 더하여 향후 검침일 또는 검토일을 계산할 수 있습니다.

아케이드 예시

다음 예시에서는 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

두 날짜 간의 기간 계산

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

아케이드 예시

다음 예시에서는 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 쿼리만 허용 설정에 관계없이 표준화된 SQL 쿼리만 지원됩니다.
  • 로캘 특정 형식 지정은 SQL 식의 숫자에 지원되지 않습니다. 예를 들어 로캘이 스페인으로 설정된 경우 쉼표 구분 기호 대신 속성 테이블 값에 소수점 구분 기호를 사용해야 합니다.
  • 더블 필드에는 숫자 MOD 함수를 사용할 수 없습니다. 예시에서와 같이 필드를 정수로 변환하세요.
  • 동기화가 활성화되었거나 피처 생성자 및 편집자를 추적하도록 구성된 호스팅 피처 레이어에 대해서는 아케이드 식을 작성할 수 없습니다.

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

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

  • 필드 이름(단, 문자열, 숫자 또는 날짜 같은 인수 유형과 필드 유형이 일치하는 경우).
  • 리터럴. 예를 들어 'Sailboat’(작은따옴표로 묶인 문자열), 숫자 5 또는 MM/DD/YYYY hh:mm:ss 형식의 날짜. 작은따옴표로 묶임.
  • 기준에 맞지 않는 SQL 쿼리가 기관에서 내 허용되는 경우, 문자열 리터럴에 영어 이외의 문자는 N으로 이스케이프되어야 합니다(예: N'침엽수림').
  • 올바른 유형(문자열, 숫자 또는 날짜)의 값을 반환하는 함수. 예를 들어 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>)

지정된 <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)- 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입니다.

LOG(<number>)

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

LOG10(<number>)

지정된 숫자의 기본 -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>의 탄젠트 값를 반환하며, 이는 라디안의 각도로 간주됩니다.

TRUNCATE(<number>,<decimal_place>)

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

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

사례

  • TRUNCATE(111.996,2) - 111.99를 반환합니다.
  • TRUNCATE(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>, <string>)

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

사례

  • POSITION('boat', 'Sailboat') - 결과는 5입니다.
  • POSITION('motor', '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'입니다.