6 Ekim 2012 Cumartesi

Belirli Karakterlerin Arasında Kalan Metin Nasıl Bulunur.



Tablomuzda ki veriler kirli olduğu zaman genelde metin alanları temizlemek zorunda kalırız. Bunlara örnek olarak belirli bir karakter içinde alan kısmı almak olabilir. İş yerinde il bilgisinin parantez içinde yazılmış olduğu bir veri ile karşılaştım. MEtin içinden il bilgisini alabilmek için basit bir sql script kullanmamız gerekti. Belki başka ihtiyacı olanlarda olabilir diye bu basit scripti sizlerle paylaşmak istedim.
İlk olarak örnek olarak kullanacağımız bir tablo oluşturup içine verilerimizi atalım
?
1
2
3
4
5
6
7
8
9
10
11
12
13
create table Kisi
(
    ID int,
    Ad varchar(50),
    Soyad varchar(50),
    Adres varchar(100)
)
insert into Kisi Values
(1,'Sabri','KUNT','Eskişehir Yolu 9.km ÇANKAYA (ANKARA)'),
(2,'Esat','ÖZDAĞ','Mevlana müzesi anrkası (KONYA)'),
(3,'Ali','RÜZGAR','Organize Sanayi Sitesi No 60 (BURSA)'),
(4,'Seher','KUNT','Gazi Ünv Teknokenti (ANKARA)'),
(5,'Ali','KALFA','Beykoz Merkez Mahallesi(İSTANBUL)')
Yukarıdaki Tabloda parantez içinde kalan il ismini almak için ilk olarak parantez açma '(' ve parantez kapatma ')' karakterlerinin indexlerini bulalım. Bunu için aşağıdaki scripti kullanabilirsiniz.
?
1
2
select *,CHARINDEX('(',Adres) as ParantezAcilis, CHARINDEX(')',Adres) as ParantezKapama
  from Kisi
Parantezleri nasıl bulacağımız anladığımıza göre şimdi arasında kalan metni alalım.
?
1
2
3
select *,
substring(Adres, CHARINDEX('(',Adres)+1 ,CHARINDEX(')',Adres)-CHARINDEX('(',Adres)-1)
  from Kisi
Gördüğünüz gibi basit ve kullanışlı bir yöntem. Bunun dışında karşılaştığınız sorunları bizlerle paylaşarak, diğer ihtiyacı olan kişilere faydalı olabilirsiniz.

Hiç yorum yok:

Yorum Gönder