ArcGIS permintaan karakter khusus di bagian spesifik bidang


9

Menggunakan ArcGIS 10.2.2, saya memiliki bidang string dalam tabel atribut SDE. Saya perlu bantuan membuat kueri untuk memilih semua catatan yang memiliki nol dalam karakter bidang ke-6 dan ke-7 (yaitu 1995-0023A). Untuk membantu saya lebih memahami jenis kueri ini, saya juga ingin dapat melihat kueri yang memilih rekaman dengan nol hanya dalam karakter ke-6 bidang. Saya kemudian dapat menggunakan klausa "dan" dan menduplikasinya untuk memilih karakter ke-7 juga.

Saya sudah mencoba variasi "FIELD1" LIKE '%00_______'tetapi tidak memilih catatan dengan nol ganda di tempat yang benar di string.


Saya sudah mencoba variasi "FIELD1" SUKA '% 00 _______' tetapi tidak memilih catatan dengan angka nol ganda di tempat yang benar dalam string.
Steve

Sesuatu seperti "FIELD1" LIKE '_____00%'? Itu akan menggunakan wildcard lima karakter, lalu dua nol Anda, lalu wildcard lainnya untuk sisa string. Apa jenis database ini? SQL Server, Oracle, sesuatu yang lain? Harap edit pertanyaan Anda untuk memasukkan info dari komentar Anda di atas, dan detail tentang basis data Anda (rilis versi dll.)
Midavalo

"field_name" SUKA '% 00%' ini akan mengembalikan semua bidang dengan nol ganda di samping satu sama lain tidak menggunakan posisi 6 atau 7 jika itu membantu.
NULL. Bung

Garis bawah _digunakan dalam beberapa database sebagai wildcard tempat karakter tunggal. Persen %adalah wildcard untuk semua tempat karakter.
Midavalo

1
Terima kasih teman-teman, sepertinya pertanyaan saya terbalik. Saran Midavalo berhasil: FIELD1 SUKA '_____ 00%'. Ini adalah Oracle DB.
Steve

Jawaban:


12

Garis bawah _digunakan dalam beberapa database sebagai wildcard tempat karakter tunggal. Persen %adalah wildcard untuk semua tempat karakter.

Oleh karena itu, sesuatu seperti "FIELD1" LIKE '_____00%'harus berfungsi, tergantung pada jenis database. Itu akan menggunakan wildcard lima karakter, lalu dua nol Anda, lalu wildcard lainnya untuk sisa string.


apakah ini akan bekerja di MS SQL Server DB juga?
NULL. Bung

1
@ Jo Ya harus - Saya telah menggunakan metode ini untuk pertanyaan yang sama di SQL Server, tapi saya tidak bisa menguji ini sekarang.
Midavalo

3

Berikut ini akan memilih semua catatan yang memiliki nol di posisi karakter ke-6 serta di posisi karakter ke-7.

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

Ada lima garis bawah sebelum nol di bagian pertama ekspresi dan kemudian enam garis bawah sebelum nol di bagian kedua. Garis bawah adalah 'wildcard' yang mengharuskan semua karakter hadir (bisa berupa spasi, angka, huruf, simbol, dll.). Persentase (%) wildcard memungkinkan apa pun untuk diikuti (juga tidak memungkinkan untuk mengikuti - tidak memerlukan karakter apa pun).

Cara yang lebih ringkas untuk menanyakan ini adalah

FIELDNAME like '_____00%'

-1

Ini tergantung pada RDBMS, meskipun yang berikut ini paling banyak berfungsi:

SUBSTRING (fieldname, 6, 2) = '00'


Selamat datang di GIS SE! Sebagai pengguna baru, silakan ikuti tur untuk mempelajari tentang format Tanya Jawab kami yang terfokus. Sudahkah Anda berhasil? Dalam pengalaman saya yang SUBSTRING()tidak pernah bekerja di SQL ArcMap's terbatas. Apakah ini tempat Anda menggunakannya, atau apakah Anda menggunakannya di tempat lain? Bisakah Anda mengedit jawaban Anda untuk memperluas ini?
Midavalo

OP menyatakan ini di SDE, bukan file geodatabase, mdb, atau shapefile. SDE menentukan RDBMS. Kueri ArcMap didasarkan pada bagian SQL mana, berdasarkan RDBMS tertentu di mana SDE ada (penting untuk mengetahui jenis basis data tempat data berada, karena sintaksis dapat berbeda). Ya, saya telah berhasil melakukan ini berkali-kali dalam 20+ tahun saya sebagai Administrator SDE. Saya telah memasukkan ini sebagai opsi, karena tidak semua RDBMS akan menggunakan opsi '_'. Solusi saya sederhana dan bisa dibilang tua, tetapi bekerja di lingkungan SDE.
CaptRay

Saya bertanya karena saya telah menguji ini minggu lalu dan tidak berhasil. Saya mungkin telah melakukan kesalahan, tetapi itu tidak berhasil bagi saya.
Midavalo

Di SDE? Jika demikian, RDBMS mana yang diduduki SDE Anda? Sungguh, saya penasaran, karena lingkungan RDBMS menggelitik saya, terutama karena perbedaan. Saya mengujinya (berhasil di Oracle dan SQL Server) sebelum memposting juga. SUBSTRING tidak valid untuk shapefile. Ini akan berfungsi untuk file geodatabases.
CaptRay

btw, sintaks Oracle adalah SUBSTR.
CaptRay
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.