ArcGIS запитує конкретні символи (и) у певній частині поля


9

Використовуючи ArcGIS 10.2.2, я маю рядок поля в таблиці атрибутів SDE. Мені потрібна допомога зі створення запиту для вибору всіх записів, які мають нуль у 6-му та 7-му символах поля (тобто 1995-0023A). Щоб мені краще зрозуміти цей тип запиту, я також хотів би мати можливість бачити запит, який вибирає записи з нулем лише в 6-му символі поля. Тоді я можу використовувати пункт "і" і дублювати його, щоб вибрати і 7-й символ.

Я спробував варіанти, "FIELD1" LIKE '%00_______'але він не вибирає записи з подвійними нулями в потрібному місці в рядку.


Я спробував варіанти "FIELD1" LIKE '% 00 _______', але він не вибирає записи з подвійними нулями в потрібному місці в рядку.
Стів

Щось на кшталт "FIELD1" LIKE '_____00%'? Для цього буде використано п'ять символів, потім два ваші нулі, а потім ще один підпис для решти рядка. Для якого типу баз даних вони є? SQL Server, Oracle, ще щось? Будь ласка, відредагуйте своє запитання, щоб включити інформацію з вашого коментаря вище та детальну інформацію про вашу базу даних (версія версії тощо)
Midavalo

"field_name" LIKE '% 00%' це поверне всі поля з подвійними нулями поруч один з одним, не використовуючи 6 або 7 позицію, якщо це допоможе.
NULL.Dude

Підкреслення _використовується в деяких базах даних в якості символу підстановки з одним символом. Відсоток %- це майна для всіх місць символів.
Midavalo

1
Дякую, хлопці, схоже, що я змінив запит. Пропозиція Midavalo спрацювала: FIELD1 LIKE '_____ 00%'. Це Oracle DB.
Стів

Відповіді:


12

Підкреслення _використовується в деяких базах даних в якості символу підстановки з одним символом. Відсоток %- це майна для всіх місць символів.

Тому щось подібне "FIELD1" LIKE '_____00%'повинно працювати, залежно від типу бази даних. Для цього буде використано п'ять символів, потім два ваші нулі, а потім ще один підпис для решти рядка.


це також буде працювати в MS SQL Server DB?
NULL.Dude

1
@Joe Так. Так - я раніше використовував цей метод для подібних запитів у SQL Server, але зараз не можу перевірити це.
Midavalo

3

Далі слід вибирати всі записи, які мають нуль у позиції 6-го символу, а також у 7-й позиції символу.

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

П'ять підкреслень передують нулю в першій частині виразу, а потім шість підкреслень, що передують нулю у другій частині. Підкреслення - це «підстановка», яка вимагає присутності будь-якого символу (це може бути пробіл, цифра, літера, символ тощо). Відмінна підстановка у відсотках (%) дозволяє будь-що слідувати (також не дозволяє нічого слідувати - не вимагає жодних символів).

Більш стислим способом було б це зробити запит

FIELDNAME like '_____00%'

-1

Це залежить від RDBMS, хоча в більшості має працювати наступне:

SUBSTRING (назва поля, 6, 2) = '00'


Ласкаво просимо в GIS SE! Як новий користувач, будь ласка, відвідайте екскурсію, щоб дізнатися про наш орієнтований формат запитань та запитань. Ви успішно провели цю роботу? На мій досвід, SUBSTRING()ніколи не працював у обмеженому SQL ArcMap. Це ви там, де ви його використовуєте, чи це ви використовуєте в іншому місці? Чи можете ви відредагувати свою відповідь, щоб розширити це?
Midavalo

ОП заявило, що це було в SDE, а не в базі даних про геодані, mdb або filefile. SDE диктує RDBMS. Запит ArcMap базується на частині SQL, де знаходиться на основі конкретної RDBMS, де існує SDE (важливо знати, для якого типу баз даних є дані, оскільки синтаксис може відрізнятися). Так, я мав це успішно чимало разів за свої 20 років як адміністратор SDE. Я кинув це як варіант, оскільки не всі RDBMS використовуватимуть опцію '_'. Моє рішення є спрощеним і, можливо, старим, але воно працює в середовищі SDE.
CaptRay

Я запитав, як я протестував це минулого тижня, і це не спрацювало. Я, можливо, зробив це неправильно, але це не спрацювало для мене.
Midavalo

У SDE? Якщо так, на якому RDBMS сидить ваш SDE? По-справжньому, мені цікаво, як оточення RDBMS мене заінтригують, особливо за відмінності. Я тестував його (успішно на Oracle і SQL Server) перед публікацією. SUBSTRING буде недійсним для shapefiles. Він буде працювати для файлових баз даних.
CaptRay

btw, синтаксис Oracle - SUBSTR.
CaptRay
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.