Definition Query???

0 голосов
спросил 14 Апр, 06 от Vadim (28,120 баллов) в категории Программные продукты Esri

Есть полигональный класс пространственных объектов в базе геоданных. Делаю к нему джоин объектного класса (таблицы) Пишу кверю в Definition Query для отображения нужных мне объектов: отобразить все объекты имеющие атрибут в поле ADDRESS полигонального класса, а также все объекты не имеющие атрибута в этом поле, площадь которых больше 500.

[BUILDINGS.ADDRESS] >'' OR [BUILDINGS.ADDRESS] = '' AND [BUILDINGS.Shape_Area] >500

Все проходит нормально отображается все, что нужно. Далее иду в атрибутивную таблицу выделяю одну запись, в датафрейме соответственно тоже должен выделиться один объект, но выделяются почему-то все объекты имеющие атрибуты в поле ADDRESS. В чем причина???

2 Ответы

0 голосов
ответил 17 Апр, 06 от lalex (4,420 баллов)

Вот так будет лаконичней: ([BUILDINGS.ADDRESS] >= '') AND ([BUILDINGS.Shape_Area] > 500)

Скобки обязательно. 3.x, помню, очень прихотливо без них работал.

Однако для меня ADDRESS > '' смотрится очень странно. По классике обработки строк положено вот: not([BUILDINGS.ADDRESS] = '')

И еще пустячок: = '' тоже сомнительная вещь во многих случаях. В SQL есть not null...

Хотя, может, и не в этом дело :)

 

0 голосов
ответил 19 Апр, 06 от Vadim (28,120 баллов)

Вот так будет лаконичней: ([BUILDINGS.ADDRESS] >= '') AND ([BUILDINGS.Shape_Area] > 500)

Лаконичней, но в данном случае, к сожалению не правильно. Это тоже самое, что [BUILDINGS.Shape_Area] > 500, остаются все объекты площадью больше 500.

В поле [BUILDINGS.ADDRESS] отсутствует значение NULL, есть просто пустая строка - ''

[BUILDINGS.ADDRESS] >''    -   показать все не пустые строки, а также

[BUILDINGS.ADDRESS] = '' AND [BUILDINGS.Shape_Area] >500   все пустые строки, значения площади в которых больше 500

По поводу проблемки выделения:image

 

Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...