Bir alanın belirli bir bölümünde bulunan ArcGIS sorgusuna özgü karakterler


9

ArcGIS 10.2.2 kullanarak, bir SDE öznitelik tablosunda bir dize alanı var. Alanın (yani 1995-0023A) 6 ve 7 karakter sıfır olan tüm kayıtları seçmek için bir sorgu oluşturma yardıma ihtiyacım var. Bu tür bir sorguyu daha iyi anlamama yardımcı olmak için, alanın yalnızca 6. karakterinde sıfır içeren kayıtları seçen bir sorgu da görmek istiyorum. Sonra "ve" yan tümcesini kullanabilir ve 7. karakteri de seçmek için çoğaltabilirim.

Varyasyonları denedim "FIELD1" LIKE '%00_______'ama dize doğru yerde çift sıfır ile kayıtları seçmez.


"FIELD1" GİBİ varyasyonları denedim '% 00 _______' ama dize doğru yerde çift sıfır ile kayıtları seçmez.
Steve

Gibi bir şey "FIELD1" LIKE '_____00%'? Bu, beş karakter joker karakteri, sonra iki sıfırınızı, ardından dizenin geri kalanı için başka bir joker karakteri kullanır. Bunlar ne tür bir veritabanında? SQL Server, Oracle, başka bir şey? Lütfen düzenlemek soru veritabanınızın (sürüm sürüm vs.) hakkında yukarıdaki yorum yapmaktan bilgi ve ayrıntıları içerecek şekilde
Midavalo

"field_name" LIKE '% 00%' bu, yan yana çift sıfır bulunan tüm alanları döndürürse yardımcı olursa 6. veya 7. konumu kullanmaz.
NULL

_Bazı veritabanlarında alt çizgi , tek karakterli yer joker karakteri olarak kullanılır. Yüzde %, tüm karakter yerleri için joker karakterdir.
Midavalo

1
Teşekkürler çocuklar, ben sorgu ters gibi görünüyor. Midavalo'nun önerisi işe yaradı: FIELD1 '% _____ 00' GİBİ. Bu bir Oracle DB.
Steve

Yanıtlar:


12

_Bazı veritabanlarında alt çizgi , tek karakterli yer joker karakteri olarak kullanılır. Yüzde %, tüm karakter yerleri için joker karakterdir.

Bu nedenle, "FIELD1" LIKE '_____00%'veritabanı türüne bağlı olarak benzer bir şey çalışmalıdır. Bu, beş karakter joker karakteri, sonra iki sıfırınızı, ardından dizenin geri kalanı için başka bir joker karakteri kullanır.


Bu MS SQL Server DB'de de çalışır mı?
NULL

1
@Joe Evet gerekir - SQL Server geçmişte benzer sorgular için bu yöntemi kullanmış, ancak şu anda test edemez.
Midavalo

3

Aşağıdaki, 6. karakter konumunda ve 7. karakter konumunda sıfır olan tüm kayıtları seçer.

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

İfadenin ilk bölümünde sıfırdan önce beş alt çizgi ve ikinci kısımda sıfırdan önce altı alt çizgi vardır. Alt çizgi, herhangi bir karakterin bulunmasını gerektiren bir 'joker karakterdir' (boşluk, sayı, harf, sembol vb. Olabilir). Yüzde (%) joker karakteri, herhangi bir şeyin takip edilmesine izin verir (ayrıca hiçbir şeyin takip edilmesine izin vermez - herhangi bir karakter gerektirmez).

Bunu sorgulamanın daha özlü bir yolu

FIELDNAME like '_____00%'

-1

Bu RDBMS'ye bağlıdır, ancak aşağıdakilerin çoğu işe yaramalıdır:

SUBSTRING (alan adı, 6, 2) = '00'


GIS SE'ye Hoşgeldiniz! Yeni bir kullanıcı olarak lütfen odaklanmış Soru-Cevap formatımız hakkında bilgi edinmek için tura katılın. Bu işi başarıyla geçirdin mi? Benim deneyimime göre SUBSTRING()ArcMap'in sınırlı SQL'lerinde hiç çalışmadı. Burası kullandığınız yer mi, yoksa başka bir yerde mi kullanıyorsunuz? Bu konuyu genişletmek için cevabınızı düzenleyebilir misiniz ?
Midavalo

OP, bunun bir coğrafi veri tabanı, mdb veya şekil dosyası değil, SDE'de olduğunu belirtti. SDE bir RDBMS belirler. ArcMap sorgusu, SDE'nin bulunduğu belirli RDBMS'ye dayalı olarak SQL'in nerede bölümüne dayanmaktadır (sözdizimi farklılık gösterebileceğinden verilerin ne tür veritabanında olduğunu bilmek önemlidir). Evet, bunu bir SDE Yöneticisi olarak 20+ yılımda birçok kez başarılı bir şekilde gerçekleştirdim. Tüm RDBMS'ler '_' seçeneğini kullanamayacağı için bunu bir seçenek olarak attım. Benim çözümüm basit ve tartışmasız eski ama SDE ortamında çalışıyor.
CaptRay

Geçen hafta test ettiğim gibi sordum ve işe yaramadı. Yanlış yapmış olabilirdim, ama benim için işe yaramadı.
Midavalo

SDE'de mi? Öyleyse, SDE'niz hangi RDBMS'de oturur? Gerçekten, RDBMS ortamları beni ilgilendirdiğinden, özellikle farklılıklar için merak ediyorum. Ben de göndermeden önce (Oracle ve SQL Server'da başarılı) test ettim. SUBSTRING şekil dosyaları için geçersiz olacak. Dosya coğrafi veritabanları için çalışır.
CaptRay

btw, Oracle'ın sözdizimi SUBSTR.
CaptRay
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.