필드의 특정 부분에있는 ArcGIS 쿼리 특정 문자


9

ArcGIS 10.2.2를 사용하여 SDE 속성 테이블에 문자열 필드가 있습니다. 필드의 6 번째 및 7 번째 문자 (예 : 1995-0023A)에서 0을 갖는 모든 레코드를 선택하기위한 쿼리 작성에 도움이 필요합니다. 이 유형의 쿼리를 더 잘 이해하기 위해 필드의 6 번째 문자에서 0으로 레코드를 선택하는 쿼리를 볼 수 있기를 원합니다. 그런 다음 "and"절을 사용하여 복제하여 7 번째 문자도 선택할 수 있습니다.

변형을 시도했지만 "FIELD1" LIKE '%00_______'문자열의 올바른 위치에 이중 0이있는 레코드를 선택하지 않습니다.


'% 00 _______'처럼 "FIELD1"의 변형을 시도했지만 문자열에서 올바른 위치에 이중 0이있는 레코드를 선택하지 않습니다.
Steve

같은 것 "FIELD1" LIKE '_____00%'? 5 개의 문자 와일드 카드를 사용한 다음 2 개의 0을 사용하고 나머지 문자열에는 다른 와일드 카드를 사용합니다. 어떤 유형의 데이터베이스가 있습니까? SQL Server, Oracle, 다른 것? 제발 편집 귀하의 질문은 데이터베이스 (버전 출시 등)에 대한 위의 의견에서 정보 및 세부 사항을 포함하는
Midavalo

"field_name"LIKE '% 00 %'이렇게하면 서로 옆에 이중 0이있는 모든 필드가 반환됩니다.이 경우 도움이되는 경우 6 위 또는 7 위를 사용하지 않습니다.
NULL.Dude

밑줄 _은 일부 데이터베이스에서 단일 문자 자리 와일드 카드로 사용됩니다. %모든 문자 위치에 대한 백분율 은 와일드 카드입니다.
Midavalo

1
고마워요, 쿼리를 되 돌린 것처럼 보입니다. Midavalo의 제안은 FIELD1 LIKE '_____ 00 %'입니다. Oracle DB입니다.
Steve

답변:


12

밑줄 _은 일부 데이터베이스에서 단일 문자 자리 와일드 카드로 사용됩니다. %모든 문자 위치에 대한 백분율 은 와일드 카드입니다.

따라서 "FIELD1" LIKE '_____00%'데이터베이스 유형에 따라 작동해야합니다. 5 개의 문자 와일드 카드를 사용한 다음 2 개의 0을 사용하고 나머지 문자열에는 다른 와일드 카드를 사용합니다.


MS SQL Server DB에서도 작동합니까?
NULL.Dude

1
@Joe 그렇습니다. SQL Server에서 과거에 비슷한 쿼리 에이 방법을 사용했지만 지금은 테스트 할 수 없습니다.
Midavalo

3

다음은 6 번째 문자 위치와 7 번째 문자 위치에서 0을 갖는 모든 레코드를 선택합니다.

FIELDNAME like '_____0%' and FIELDNAME like '______0%'

표현식의 첫 번째 부분에서 0 앞에 5 개의 밑줄이 있고 두 번째 부분에서 0 앞에 6 개의 밑줄이 있습니다. 밑줄은 문자가 있어야하는 '와일드 카드'입니다 (공백, 숫자, 문자, 기호 등일 수 있음). 퍼센트 (%) 와일드 카드는 무엇이든 따라갈 수 있습니다 (또한 따를 수 없음-문자 필요 없음).

이것을 쿼리하는 간결한 방법은 다음과 같습니다.

FIELDNAME like '_____00%'

-1

RDBMS에 따라 다르지만 대부분 다음과 같이 작동합니다.

SUBSTRING (필드 이름, 6, 2) = '00'


GIS SE에 오신 것을 환영합니다! 신규 사용자는 둘러보기 를 통해 집중적 인 Q & A 형식에 대해 알아보십시오. 이 작업을 성공적으로 수행 했습니까? 내 경험상 SUBSTRING()ArcMap의 제한된 SQL 에서는 결코 작동하지 않았습니다. 이것이 당신이 그것을 사용하는 곳입니까, 아니면 다른 곳에서 이것을 사용합니까? 이에 대한 답변을 수정 해 주시겠습니까?
Midavalo

OP는 이것이 파일 지오 데이터베이스, mdb 또는 shapefile이 아니라 SDE에 있다고 언급했습니다. SDE는 RDBMS를 지시합니다. ArcMap 쿼리는 SDE가 존재하는 특정 RDBMS를 기반으로 SQL의 위치 부분을 기반으로합니다 (구문이 다를 수 있으므로 데이터의 데이터베이스 유형을 알아야 함). 예, 저는 20 년 이상 동안 SDE 관리자로서 여러 번 성공적으로 수행해 왔습니다. 모든 RDBMS가 '_'옵션을 사용하는 것은 아니기 때문에 이것을 옵션으로 던졌습니다. 내 솔루션은 간단하고 논쟁의 여지가 있지만 SDE 환경에서 작동합니다.
CaptRay

지난주에 테스트를했는데 요청했지만 작동하지 않았습니다. 내가 잘못했을 수도 있지만 그것은 효과가 없었습니다.
Midavalo

SDE에서? 그렇다면 SDE는 어떤 RDBMS입니까? RDBMS 환경이 특히 차이점에 대해 흥미를 느끼기 때문에 정말 궁금합니다. 게시하기 전에 (Oracle 및 SQL Server에서 성공했습니다) 테스트했습니다. SUBSTRING은 쉐이프 파일에 유효하지 않습니다. 파일 지오 데이터베이스에서 작동합니다.
CaptRay

btw, 오라클의 구문은 SUBSTR입니다.
CaptRay
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.