Kreator zapytań jest używany w narzędziach Znajdź według atrybutów i lokalizacji, Filtruj według atrybutów oraz Oblicz pole do tworzenia wyrażeń, które spełniają określone kryteria.
Tworzenie zapytania
Aby utworzyć zapytanie, kliknij przycisk Utwórz nowe zapytanie w panelu narzędzia lub w oknie dialogowym narzędzia.
Na początek wybierz warstwę, w której chcesz znaleźć obiekty. W przypadku narzędzia Znajdź według atrybutów i lokalizacji można to zrobić w kreatorze zapytań. W przypadku narzędzi Filtruj według atrybutów i Oblicz pole parametr danych wejściowych musi być wypełniony, zanim możliwe będzie utworzenie zapytania.
Następnie wybierz, czy należy rozpocząć od wyrażenia opartego na atrybutach, wyrażenia przestrzennego (Tylko narzędzie Znajdź według atrybutów i lokalizacji), czy grupy wyrażeń.
Jeśli zapytanie ma więcej niż jedno wyrażenie, należy wybrać odpowiednią z następujących opcji, aby połączyć te wyrażenia:
- Wszystkie poniższe warunki są spełnione (opcja domyślna) — zwracane są tylko obiekty spełniające wszystkie wyrażenia. Ta opcja jest równoważna klauzuli AND (I).
- Dowolny z poniższych warunków jest spełniony – zwracane są obiekty, które spełniają dowolne z wyrażeń. Ta opcja jest równoważna klauzuli OR (LUB).
Wyrażenia oparte na atrybutach
Każde zapytanie atrybutowe zawiera nazwę pola, operator i wartość.
Możesz na przykład w następujący sposób utworzyć zapytanie w warstwie zawierającej dane o zdarzeniach przestępczych w mieście (kradzieże, podpalenia, napaści z bronią w ręku itp.), aby wyświetlić tylko zdarzenia kradzieży. Utwórz wyrażenie oparte na atrybutach w następujący sposób:
- Jako nazwę pola wybierz Rodzaj przestępstwa.
- Jako operator wybierz równa się.
- Jako wartość wpisz lub wybierz Kradzież.
Notatka:
Pola z wartościami null są wykluczane ze wszystkich wyników zapytania z wyjątkiem sytuacji, gdy wybrano operator jest puste.
W większości przypadków kreator zapytań zawiera listę dostępnych wartości pól, aby ułatwić utworzenie dokładnego wyrażenia. Lista nie jest dostępna w aplikacji ModelBuilder, jeśli wejściowy zestaw danych to dane wynikowe z innego narzędzia. Musisz wprowadzić w polu wprowadzania dokładną wartość, a nie wybrać wartość z listy.
Wyrażenia przestrzenne
Każde wyrażenie przestrzenne zawiera operator i drugą warstwę. Poniżej drugiej warstwy możesz użyć przycisku Wyrażenie, aby dodać wyrażenie w celu dalszego doprecyzowania obiektów z drugiej warstwy, które zostaną użyte w oryginalnym wyrażeniu przestrzennym.
Jeśli na przykład inna warstwa reprezentuje piekarnie, można jeszcze bardziej zawęzić zapytanie atrybutowe, aby wyszukać kradzieże, które miały miejsce w promieniu 100 metrów od cukierni. Dodaj następujące wyrażenie przestrzenne:
- Jako operator wybierz W odległości do i wprowadź wartość 100 metrów.
- Jako warstwę wybierz warstwę piekarni.
- Kliknij przycisk Wyrażenie i wybierz Wyrażenie oparte na atrybutach.
- W grupie instrukcji Where jako pole nazwy Typ sklepu, pozostaw operator równa się i wpisz lub wybierz jako wartość Cukiernie.
Grupa wyrażeń
Aby utworzyć bardziej złożone zapytanie, można użyć grup wyrażeń do zgrupowania wielu wyrażeń. Sposób grupowania wyrażeń decyduje o tym, co zostanie znalezione. Można utworzyć maksymalnie trzy poziomy grupowania.
Grup wyrażeń można na przykład użyć do dodatkowego dostosowania opisanego powyżej filtra zdarzeń przestępczych. Aby wyświetlić zarówno podpalenia, jak i kradzieże zgłoszone w odległości 100 metrów od sklepu z pączkami, można utworzyć grupę wyrażeń w celu znalezienia podpaleń i kradzieży. W tej grupie należy użyć opcji Dowolny z poniższych warunków jest spełniony. Następnie (poza grupą) należy dodać wyrażenie przestrzenne, aby znaleźć obiekty w promieniu 100 metrów od cukierni.

Operatory
Narzędzie Znajdź według atrybutów i lokalizacji używa operatorów na potrzeby zapytań atrybutowych i przestrzennych, natomiast narzędzia Filtruj według atrybutów i Oblicz pole używają operatorów wyłącznie na potrzeby zapytań atrybutowych.
Operatory atrybutów
W zapytaniach atrybutowych można używać kilku operatorów, w zależności od tego, czy odpytywane pole zawiera dane jakościowe czy numeryczne.
Jeśli pole zawiera ciąg znakowy, można użyć następujących operatorów:
- równa się — ciągi znakowe pasujące do podanego tekstu.
- nie równa się — ciągi znakowe, które nie pasują do podanego tekstu.
- należy do — ciągi znakowe, które są zgodne z jedną z podanych wartości tekstowych.
- nie należy do — ciągi znakowe, które nie są zgodne z żadną z podanych wartości tekstowych.
- zawiera — ciągi znakowe zawierające podany tekst.
- nie zawiera — ciągi znakowe, które nie zawierają podanego tekstu.
- zaczyna się od — ciągi znakowe rozpoczynające się od podanego tekstu.
- nie zaczyna się od — ciągi znakowe, które nie rozpoczynają się od podanego tekstu.
- kończy się na — ciągi znakowe, które kończą się podanym tekstem.
- nie kończy się na — ciągi znakowe, które nie kończą się podanym tekstem.
- jest puste — ciągi znakowe, które nie zawierają tekstu i nie mają wartości null.
- nie jest puste — ciągi znakowe, które zawierają tekst i nie mają wartości null.
- jest pustym ciągiem znakowym — ciągi znakowe, które mają wartość null lub nie zawierają tekstu.
- nie jest pustym ciągiem znakowym — ciągi znakowe, które zawierają jakiś tekst lub mają wartość null.
Jeśli pole jest liczbowe, można użyć następujących operatorów:
- jest pomiędzy — liczby, które znajdują się pomiędzy dwiema podanymi wartościami. Wartości ograniczające są uwzględniane w wynikach.
- nie jest pomiędzy — liczby, które nie znajdują się pomiędzy dwiema podanymi wartościami. Wartości ograniczające nie są uwzględniane w wynikach.
- równa się — liczby pasujące do podanej wartości.
- nie równa się — liczby, które nie pasują do podanej wartości.
- należy do — liczby, które są zgodne z jedną z podanych wartości.
- nie należy do — liczby, które nie są zgodne z żadną z podanych wartości.
- jest większe niż — liczby, które są większe niż podana wartość.
- równa się co najmniej — liczby, które są równe podanej wartości lub od niej większe.
- jest mniejsze niż — liczby, które są mniejsze niż podana wartość.
- równa się maksymalnie — liczby, które są mniejsze od podanej wartości lub jej równe.
- jest puste — liczby pasujące do podanej wartości.
- nie jest puste — liczby, które mają jakąś wartość.
Jeśli pole jest datą, można użyć następujących operatorów:
- jest pomiędzy — daty, które znajdują się pomiędzy dwiema podanymi datami. Wartości ograniczające są uwzględniane w wynikach.
- nie jest pomiędzy — daty, które nie znajdują się pomiędzy dwiema podanymi datami. Wartości ograniczające nie są uwzględniane w wynikach.
- jest w dniu — daty, które są takie same jak podana data.
- nie jest w dniu — daty, które nie są takie same jak podana data.
- jest przed — daty, które są przed podaną datą.
- jest po — daty, które są po podanej dacie.
- jest puste — daty, które mają wartość null.
- nie jest puste — daty, które nie mają wartości null.
Operatory przestrzenne
Wyrażenia przestrzenne są tworzone przez określenie operatorów, takich jak całkowicie wewnątrz lub przecina.
W zapytaniu przestrzennym można używać następujących operatorów przestrzennych:
- Przecina się — jeżeli obiekt w pierwszej warstwie przecina obiekt z drugiej warstwy, obiekt z pierwszej warstwy zostaje uwzględniony w warstwie wynikowej.
- Nie przecina się — jeżeli obiekt w pierwszej warstwie przecina obiekt z drugiej warstwy, obiekt z pierwszej warstwy nie zostaje uwzględniony w warstwie wynikowej.
- W odległości do — obiekt w pierwszej warstwie zostaje wybrany (uwzględniony w warstwie wynikowej), jeśli dowolna jego część znajduje się w określonej odległości od obiektu w drugiej warstwie; na przykład, działki znajdujące się w odległości do 100 metrów od rzeki zostaną uwzględnione w warstwie wynikowej.
- Nie w odległości do — obiekt w pierwszej warstwie zostaje wykluczony (nieuwzględniony w warstwie wynikowej), jeśli znajduje się w określonej odległości od obiektu w drugiej warstwie; na przykład, działki znajdujące się w odległości do 100 metrów od rzeki nie zostaną uwzględnione w warstwie wynikowej. Tę zależność można opisać inaczej jako „obiekt znajduje się dalej niż podana odległość”.
- Całkowicie zawiera — jeśli obiekt w pierwszej warstwie całkowicie zawiera obiekt z drugiej warstwy, obiekt z pierwszej warstwy zostaje uwzględniony w warstwie wynikowej.
- Nie całkowicie zawiera — jeśli obiekt w pierwszej warstwie całkowicie zawiera obiekt z drugiej warstwy, obiekt z pierwszej warstwy nie zostaje uwzględniony w warstwie wynikowej.
- Całkowicie wewnątrz — jeżeli obiekt w pierwszej warstwie zawiera się całkowicie w obiekcie z drugiej warstwy, obiekt z pierwszej warstwy zostaje uwzględniony w warstwie wynikowej.
- Nie całkowicie wewnątrz — jeżeli obiekt w pierwszej warstwie zawiera się całkowicie w obiekcie z drugiej warstwy, obiekt z pierwszej warstwy nie zostaje uwzględniony w warstwie wynikowej.
- Najbliższy do — jeśli obiekt w pierwszej warstwie jest obiektem znajdującym się najbliżej względem obiektu z drugiej warstwy, obiekt z pierwszej warstwy zostaje uwzględniony w warstwie wynikowej.
Rozwiązywanie problemów
Zmiany w zestawie danych mogą spowodować, że wcześniej prawidłowe wyrażenie stanie się nieprawidłowe. Przykładowe zmiany, które mogą spowodować, że wyrażenie stanie się nieprawidłowe, to usunięcie lub zmiana typu pola używanego w wyrażeniu bądź zmiana geometrii obiektu zestawu danych używanego w wyrażeniu przestrzennym. Nieprawidłowe wyrażenia nie są wyświetlane w kreatorze zapytań po jego ponownym otwarciu.