제품 : ArcGIS Desktop 제작일 : 2019 년 03 월 19 일 제작 :
개요 본문서는 ArcGIS 의쿼리식에사용되는일반적인쿼리요소에대한한국에스리 기술문서입니다. 다음내용을통해쿼리식에사용되는연산자에대한을확인할 수있습니다. 쿼리 (Query) 는 ArcGIS 에서피처및테이블레코드의하위집합을선택하는데사용됩니다. ArcGIS 쿼리표현식은표준 SQL 표현식을준수합니다. 예를들어, 속성으로선택 (Select layer by attributes) 도구또는쿼리작성기 (Query Builder) 대화상자를사용하여쿼리를이용합니다. 이문서와관련된내용에대한문의 / 건의등을원하신다면, 다음의연락망을통하여 한국에스리기술지원센터로연락주시기바랍니다. 한국에스리기술지원센터 ( 유지관리고객대상 ) o 고객지원홈페이지 : http://www.esrikr.com/self-service/ o 이메일 : help@esrikr.com o 전화 : 080-850-0915 운영시간 : 평일오전 9 시 ~ 오후 6 시 24 시간기술지원리소스 : o 한국에스리기술자료 : http://esrikr.com/article-categories/technical/ o Esri 기술지원페이지 ( 영문 ) : http://support.esri.com ArcGIS Pro 도움말 : http://pro.arcgis.com/en/pro-app/help/ ArcMap 도움말 : http://desktop.arcgis.com/en/arcmap/ 1 03/19/2019
목차 개요....1 연산자 (Operator)... 3 함수 (Functioins)... 7 2 03/19/2019
연산자 (Operator) 다음은파일지오데이터베이스, 쉐이프파일, 커버리지및기타파일기반데이터에서지원하는쿼리연산자의목록입니다. 아래원본에다른구문을추가하면 Personal 또는 ArcSDE 데이터베이스에서도지원됩니다. 아래목록의연산자외에도 Personal 및 ArcSDE 지오데이터메이스에서추가기능을지원합니다. 자세한내용은 DBMS 서를참조하시기바랍니다. 1. 산술연산자 (Arithmetic operators) 산술연산자를사용하여숫자값을더하기, 빼기, 곱하기, 나누기할수있습니다. 연산자 * 곱셈을위한산술연산자 / 나눗셈을위한산술연산자 + 덧셈을위한산술연산자 - 뺄셈을위한산술연산자 2. 비교연산자 (Comparison operators) 비교연산자를사용하여한표현식을다른표현식과비교합니다. 연산자 < < = < > > 미만, 문자열 ( 알파벳순서에따라비교 ) 과숫자및날짜와함께사용가능합니다. 이하, 보다작거나같음, 문자열 ( 알파벳순서에따라비교 ) 과숫자및날짜와함께사용가능합니다. 같지않음, 문자열 ( 알파벳순서에따라비교 ) 과숫자및날짜와함께사용가능합니다. 초과, 문자열 ( 알파벳순서에따라비교 ) 과숫자및날짜와함께사용가능합니다. 3 03/19/2019
> = 이상, 크거나같음, 문자열 ( 알파벳순서에따라비교 ) 과숫자및 날짜와함께사용가능합니다. [NOT]BETWEEN x AND y 예 ) 이름이 M-Z 로시작하는모든도시선택 CITY_NAME > = M 레코드가 x 보다크거나같고 y 보다작거나같은레코드를 선택합니다. NOT 이앞에오면지정된범위외의값을가진레코드를 선택합니다. 예 ) OBJECTID 가 1 보다크고 10 보다작은레코드선택 OBJECTID BETWEEN 1 AND 10 ( 동일 ) OBJECTID > = 1 AND OBJECTID < = 10 인덱싱된필드사용시 BETWEEN 식이더나은성능을제공합니다. [NOT] EXISTS 하위쿼리가하나이상의레코드를반환하면 True, 그렇지않으면 False 를반환합니다. 예 ) OBJECTID 가 50 을포함하는경우 True 반환 EXISTS (SELECT * FROM WHERE OBJECTID = 50) EXISTS 연산자는파일, 개인및 ArcSDE 지오데이터베이스에서만지원가능합니다. [NOT] IN 필드에문자열또는값중하나가있으면레코드를선택합니다. NOT 이앞에오면필드에문자열또는값중하나가없는경우레코드를선택합니다. 예 ) 4 개의다른주 (state) 이름을검색 STATE_NAME IN ( Alabama, Alaska, California, Florida ) 파일, 개인및 ArcSDE 지오데이터베이스의경우하위쿼리에도적용 가능합니다. 예 ) STATE_NAME IN (SELECT STATE_NAME FROM states POP > 5000000) IS [NOT] NULL 레코드가지정된필드에대해 NULL 값을갖는경우레코드를 선택합니다. NOT 입력시 NULL 값이아닌레코드를선택합니다. 예 ) 인구수필드에포함된 NULL 값선택 POPULATION IS NULL 4 03/19/2019
X [NOT] LIKE y [ESCAPE escapecharacter ] LIKE 연산자로와일드카드를포함하여부분문자열을검색합니다. 예 ) 미국주이름중 Mississippi 와 Missouri 를선택 STATE_NAME LIKE Miss % 퍼센트기호 (%) 는허용되는모든문자 ( 한글자, 여러글자, 글자 없음 ) 를의미합니다. 한글자를나타내는와일드카드로검색하려면 밑줄 (_) 을사용하십시오. 예 ) 소유자이름중 Catherine Smith 와 Katherine Smith 선택 OWNER_NAME LIKE _atherine Smith 와일드카드와퍼센트기호는 File-based 또는 Multiuser 데이터베이스에서사용가능합니다. 글자양옆으로사용 가능합니다. 문자가아닌데이터에서는 CAST 를사용합니다. 예 ) 정수필드 SCORE_INT 에서 8 로시작하는숫자선택 CAST ( SCORE_INT AS VARCHAR) LIKE 8 % 문자열에퍼센트기호 (%) 또는밑줄 (_) 을포함하여검색하고싶을 경우 ESCAPE 를사용하여해당특수문자를 ESCAPE 문자로 지정합니다. 예 ) AMOUNT 필드값중 10%, 10% 할인, A10% 인문자선택 AMOUNT LIKE %10$%% ESCAPE $ 3. 논리연산자 (Logical operators) 연산자 두조건을함께사용하고두조건이모두해당될때레코드를선택합니다. AND 예 ) 면적이 1500 이상이며차고가 2 개이상인조건선택 AREA > 1500 AND GARAGE > 2 두조건을함께사용하고하나의조건이참일때레코드를선택합니다. OR 예 ) 면적이 1500 이상또는차고가 2 개이상인조건선택 AREA > 1500 OR GARAGE > 2 표현식과일치하지않는레코드를선택합니다. NOT 예 ) California 를제외한모든미국주선택 NOT STATE_NAME = California 5 03/19/2019
4. 문자열연산자 (String operators) 연산자 둘이상의문자열표현식을함께연결한결과를반환 예 ) FIRST_NAME MIDDLIE_NAME LAST_NAME 6 03/19/2019
함수 (Functioins) 다음은파일지오데이터베이스, 쉐이프파일, 커버리지및기타파일기반데이터에서지원하는함수목록입니다. 이는개인및 ArcSDE 지오데이터베이스에서도지원되지만데이터소스마다구문및함수에차이가존재합니다. 아래함수외에도개인및 ArcSDE 지오데이터베이스는추가기능을지원합니다. 자세한내용은 DBMS 문서를참조하십시오. 1. 날짜함수 (Date functions) 함수 CURRENT_DATE 현재날짜를반환합니다. EXTRACT(extract_ 필드 FROM extract_ 원본 ) Extract_ 원본의 extract_ 필드일부분을반환합니다. Extract_ 원본은날짜 - 시간표현식이며 extract_ 필드는다음 키워드중하나일수있습니다 : YEAR, MONTH, HOUR, MINUTE, SECOND CURRENT TIME 현재시간을반환합니다. 2. 문자열함수 (String functions) string_exp 로표시된변수는열의이름, 문자스트링또는다른스칼라함수의결과가될수있습니다. 기본데이터유형은문자유형으로표시될수있습니다. character_exp 로표시된변수는변수-길이문자열입니다. start 또는 length 로표시된변수는숫자또는다른스칼라함수의결과일수있습니다. 여기서기본데이터유형은숫자유형으로표시될수있습니다. 이러한문자열함수는 1 부터시작합니다. 즉, 문자열의첫번째문자는 1 입니다. 함수 CHAR_LENGTH (string_exp) 문자의길이를반환합니다. LOWER (string_exp) String_exp 와동일한문자열을반환하며대문자를 소문자로변환합니다. 7 03/19/2019
POSITION (character_exp IN character_exp) SUBSTRING (string_exp FROM start FOR length) TRIM ( BOTH LEADING TRAILING trim_character FROM string_exp) UPPER (string_exp) 두번째문자표현식에서첫번째문자표현식의위치를반환합니다. Start 로시작된문자위치부터 length 길이만큼 string_exp 의문자열을반환합니다. 문자열의앞, 뒤또는양쪽에서 trim_character 를제거한 string_exp 의문자열을반환합니다. String_exp 와동일한문자열을반환하며소문자를대문자로변환합니다. 3. 숫자함수 (Numeric functions) 모든숫자함수는숫자값을반환합니다. numeric_exp, float_exp 또는 integer_exp 로표시된변수는열의이름, 다른스칼라함수의결과또는기본데이터유형이숫자유형으로표시될수있는숫자입니다. 함수 ABS (numeric_exp) numeric_exp 의절대값을반환합니다. ACOS (float_exp) ASIN (float_exp) ATAN (float_exp) float_exp 의아크코사인값을반환합니다. ( 단위 : radians) float_exp 의아크사인값을반환합니다. ( 단위 : radians) float_exp 의아크탄젠트값을반환합니다. ( 단위 : radians) CEILING (numeric_exp) numeric_exp 보다크거나같은최소정수를반환합니다. COS (float_exp) float_exp 의코사인값을반환합니다. ( 단위 : radians) FLOOR (numeric_exp) numeric_exp 보다작거나같은최대정수를반환합니다. LOG (float_exp) float_exp 의 log 값을반환합니다. LOG10 (float_exp) float_exp 의 log10 값을반환합니다. MOD (integer_exp1, integer_exp2) POWER (numeric_exp, integer_exp) ROUND (numeric_exp, integer_exp) interger_exp1 을 interger_exp2 로나눈나머지를반환합니다. numeric_exp 값에 integer_exp 제곱한값을반환합니다. 소수점오른쪽 interger_exp 의위치에서반올림한 numeric_exp 값을반환합니다. integer_exp 가음수라면절대값의위치로계산합니다. 8 03/19/2019
SIGN (numeric_exp) SIN (float_exp) TAN (float_exp) TRUNCATE (numeric_exp, integer_exp) numeric_exp 의부호를반환합니다. numeric_exp 가 0 보다작으면 -1, 0 이면 0, 0 보다크면 1 이반환됩니다. float_exp 의사인값을반환합니다. ( 단위 : radians) float_exp 의탄젠트값을반환합니다. ( 단위 : radians) 소수점오른쪽 integer_exp 의위치에서잘린 numeric_exp 를반환합니다. integer_exp 가음수라면절대값의위치로계산합니다. 원문 : http://desktop.arcgis.com/en/arcmap/latest/map/working-with-layers/sql-reference-forquery-expressions-used-in-arcgis.htm 9 03/19/2019