ArcGIS odpytuje określone znaki w określonej części pola


9

Korzystając z ArcGIS 10.2.2, mam pole tekstowe w tabeli atrybutów SDE. Potrzebuję pomocy w tworzeniu zapytania, aby wybrać wszystkie rekordy, które mają zero w 6. i 7. znaku pola (tj. 1995-0023A). Aby pomóc mi lepiej zrozumieć tego typu zapytania, chciałbym również zobaczyć zapytanie, które wybiera rekordy z zerami tylko w 6. znaku pola. Następnie mogę użyć klauzuli „i” i zduplikować ją, aby również wybrać siódmy znak.

Próbowałem odmian, "FIELD1" LIKE '%00_______'ale nie wybiera rekordów z podwójnymi zerami we właściwym miejscu w ciągu.


Próbowałem odmian „FIELD1” LIKE „% 00 _______”, ale nie wybiera rekordów z podwójnymi zerami we właściwym miejscu w ciągu.
Steve

Coś takiego "FIELD1" LIKE '_____00%'? Użyłoby to pięciu znaków wieloznacznych, następnie twoich dwóch zer, a następnie kolejnej wieloznacznej reszty ciągu. W jakim typie bazy danych są? SQL Server, Oracle, coś jeszcze? Proszę edytować swoje pytanie do obejmować informacje z Twojego komentarza powyżej, a dane o bazie danych (wydanie wersji itd.)
Midavalo

„nazwa_pola” LIKE „% 00%” spowoduje zwrócenie wszystkich pól z podwójnymi zerami obok siebie, nie używa 6. lub 7. pozycji, jeśli to pomaga.
NULL.Dude

Podkreślenie _jest używane w niektórych bazach danych jako znak zastępczy pojedynczego znaku. Procent %to symbol wieloznaczny dla wszystkich miejsc postaci.
Midavalo

1
Dzięki chłopaki, wygląda na to, że odwróciłem zapytanie. Sugestia Midavalo zadziałała: FIELD1 LIKE „_____ 00%”. To Oracle DB.
Steve

Odpowiedzi:


12

Podkreślenie _jest używane w niektórych bazach danych jako znak zastępczy pojedynczego znaku. Procent %to symbol wieloznaczny dla wszystkich miejsc postaci.

Dlatego coś podobnego "FIELD1" LIKE '_____00%'powinno działać, w zależności od rodzaju bazy danych. Użyłoby to pięciu znaków wieloznacznych, następnie twoich dwóch zer, a następnie kolejnej wieloznacznej reszty ciągu.


czy działałoby to również w MS SQL Server DB?
NULL

1
@Joe Tak, powinno - w przeszłości korzystałem z tej metody w przypadku podobnych zapytań w programie SQL Server, ale nie mogę jej teraz przetestować.
Midavalo

3

Poniżej zaznaczono wszystkie rekordy, które mają zero na 6. pozycji znaku, a także na 7. pozycji znaku.

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

Istnieje pięć znaków podkreślenia poprzedzających zero w pierwszej części wyrażenia, a następnie sześć znaków podkreślenia poprzedzających zero w drugiej części. Podkreślenie to „symbol wieloznaczny”, który wymaga obecności dowolnego znaku (może to być spacja, liczba, litera, symbol itp.). Symbol wieloznaczny procent (%) pozwala na śledzenie wszystkiego (nie pozwala również na śledzenie - nie wymaga żadnego znaku).

Byłoby to bardziej zwięzłe rozwiązanie tego problemu

FIELDNAME like '_____00%'

-1

Jest to zależne od RDBMS, chociaż następujące powinny działać w większości:

SUBSTRING (nazwa pola, 6, 2) = „00”


Witamy w GIS SE! Jako nowy użytkownik zapoznaj się z naszym przewodnikiem, aby dowiedzieć się więcej o naszym ukierunkowanym formacie pytań i odpowiedzi. Czy miałeś tę pracę z powodzeniem? Z mojego doświadczenia SUBSTRING()wynika, że nigdy nie działał w ograniczonym SQL ArcMap. Czy to tam, gdzie go używasz, czy używasz go gdzie indziej? Czy możesz edytować swoją odpowiedź, aby ją rozwinąć?
Midavalo

OP stwierdził, że było to w SDE, a nie w geobazie pliku, mdb lub shapefile. SDE dyktuje RDBMS. Zapytanie ArcMap jest oparte na miejscu SQL, na podstawie określonego RDBMS, w którym istnieje SDE (ważne, aby wiedzieć, w jakim typie bazy danych znajdują się dane, ponieważ składnia może się różnić). Tak, miałem to udane działanie wiele razy w ciągu moich ponad 20 lat jako administrator SDE. Wrzuciłem to jako opcję, ponieważ nie wszystkie RDBMS będą korzystać z opcji „_”. Moje rozwiązanie jest uproszczone i prawdopodobnie stare, ale działa w środowisku SDE.
CaptRay

Zapytałem, jak testowałem w zeszłym tygodniu i to nie zadziałało. Mogłem zrobić to źle, ale to nie działało dla mnie.
Midavalo

W SDE? Jeśli tak, na którym RDBMS siedzi Twój SDE? Naprawdę jestem ciekawy, ponieważ środowiska RDBMS intrygują mnie, szczególnie z powodu różnic. Przetestowałem to (z powodzeniem na Oracle i SQL Server) również przed opublikowaniem. SUBSTRING będzie nieważny dla plików kształtów. Będzie działać z geobazami plików.
CaptRay

btw, składnia Oracle to SUBSTR.
CaptRay
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.