필드의 특정 부분에있는 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.