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.