Underscore İçeren Kayıtları SQL İle Bulma

Bazı durumlarda bir MapInfo tablosunda, içinde _ karakterinin geçtiği kayıtları bulmak isteyebiliriz. Bu kayıtları bulmak için ilk olarak aşağıdaki gibi bir SQL akla gelebilir:

SELECT * FROM ILCE WHERE ILCE_ADI LIKE "%_%"

Ama bu SQL i çalıştırdığımızda istediğimiz sonuçlar gelmeyecektir çünkü _ karakteri MapInfo SQL inde bir joker karakterdir. Bu karakter sadece bir karakter eşlemesi için kullanılır ve bu yüzden sorgu sonucunda boş kayıtlar dışındaki tüm kayıtları getirir. İlçe örneğimizde yukarıdaki SQL i çalıştırırsak tüm ilçe kayıtlarının geldiğini görürüz. Ama bizim istediğimiz bu değildi.

Çözüm için InStr fonksiyonunu kullanabiliriz:

SELECT * FROM ILCE WHERE INSTR(1, ILCE_ADI, "_") > 0

InStr fonksiyonu bir string değerin (burada _) başka bir string (ilçe adı) içinde ilk olarak bulunduğu pozisyonu döndürür. Dolayısıyla bu pozisyonun 0 dan büyük olması aradığımız stringin diğer string içinde bulunduğunu gösterir.

Aynı durum yüzde (%) karakteri için de söz konusudur çünkü % karakteri de MapInfo SQL inde joker karakterdir.

 

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: