SSIS İle İsimleri Düzenleme
Merhabalar ,
bu yazımda size etl ile verileri düzenlerken yine karmaşık gözüken ama işinizi çok çok kolaylaştıran bir komut açıklayacağım.
öncelikle bazı veriler isim 2.isim soyisim bazıları ise isim soyisim şeklindeydi. ve benden istenen format isimlerin ilk harfi soyismi tamamı büyük şeklindeydi.
ikisi için farklı işlemler yapılacağından conditional(?:) operatörünü kullandım.
TOKENCOUNT([Öğrenci]," ") komutuyla verinin kaç kelimeli olduğunu buldum ve sonrasında 2 kelimeliyse ilk kelimenin ilk harfi büyük diğerleri küçük olacak şekilde birleştirdim. 3 kelimeliyse ise ilk iki kelimenin ilk harflerini büyük diğer harfleri küçük son kelimenin tamamı büyük olacak şekilde işlemi yaptım
TOKENCOUNT([Öğrenci]," ") == 2 ? UPPER(SUBSTRING(SUBSTRING(TRIM([Öğrenci]),1,FINDSTRING(LOWER([Öğrenci])," ",1)),1,1)) + LOWER(SUBSTRING(SUBSTRING(TRIM([Öğrenci]),1,FINDSTRING(LOWER([Öğrenci])," ",1)),2,LEN(SUBSTRING(TRIM([Öğrenci]),1,FINDSTRING(LOWER([Öğrenci])," ",1))) - 1)) + " " + UPPER(TOKEN([Öğrenci]," ",TOKENCOUNT([Öğrenci]," "))) : UPPER(SUBSTRING(SUBSTRING(TRIM([Öğrenci]),1,FINDSTRING(LOWER([Öğrenci])," ",1)),1,1)) + LOWER(SUBSTRING(SUBSTRING(TRIM([Öğrenci]),1,FINDSTRING(LOWER([Öğrenci])," ",1)),2,LEN(SUBSTRING(TRIM([Öğrenci]),1,FINDSTRING(LOWER([Öğrenci])," ",1))) - 1)) + " " + UPPER(SUBSTRING(SUBSTRING(TRIM([Öğrenci]),FINDSTRING(TRIM([Öğrenci])," ",1) + 1,FINDSTRING(TRIM([Öğrenci])," ",2) - FINDSTRING(TRIM([Öğrenci])," ",1)),1,1)) + LOWER(SUBSTRING(SUBSTRING(TRIM([Öğrenci]),FINDSTRING(TRIM([Öğrenci])," ",1) + 1,FINDSTRING(TRIM([Öğrenci])," ",2) - FINDSTRING(TRIM([Öğrenci])," ",1)),2,LEN(SUBSTRING(TRIM([Öğrenci]),FINDSTRING(TRIM([Öğrenci])," ",1) + 1,FINDSTRING(TRIM([Öğrenci])," ",2) - FINDSTRING(TRIM([Öğrenci])," ",1))) - 1)) + " " + UPPER(TOKEN([Öğrenci]," ",TOKENCOUNT([Öğrenci]," ")))
bu yazımda size etl ile verileri düzenlerken yine karmaşık gözüken ama işinizi çok çok kolaylaştıran bir komut açıklayacağım.
öncelikle bazı veriler isim 2.isim soyisim bazıları ise isim soyisim şeklindeydi. ve benden istenen format isimlerin ilk harfi soyismi tamamı büyük şeklindeydi.
ikisi için farklı işlemler yapılacağından conditional(?:) operatörünü kullandım.
TOKENCOUNT([Öğrenci]," ") komutuyla verinin kaç kelimeli olduğunu buldum ve sonrasında 2 kelimeliyse ilk kelimenin ilk harfi büyük diğerleri küçük olacak şekilde birleştirdim. 3 kelimeliyse ise ilk iki kelimenin ilk harflerini büyük diğer harfleri küçük son kelimenin tamamı büyük olacak şekilde işlemi yaptım
TOKENCOUNT([Öğrenci]," ") == 2 ? UPPER(SUBSTRING(SUBSTRING(TRIM([Öğrenci]),1,FINDSTRING(LOWER([Öğrenci])," ",1)),1,1)) + LOWER(SUBSTRING(SUBSTRING(TRIM([Öğrenci]),1,FINDSTRING(LOWER([Öğrenci])," ",1)),2,LEN(SUBSTRING(TRIM([Öğrenci]),1,FINDSTRING(LOWER([Öğrenci])," ",1))) - 1)) + " " + UPPER(TOKEN([Öğrenci]," ",TOKENCOUNT([Öğrenci]," "))) : UPPER(SUBSTRING(SUBSTRING(TRIM([Öğrenci]),1,FINDSTRING(LOWER([Öğrenci])," ",1)),1,1)) + LOWER(SUBSTRING(SUBSTRING(TRIM([Öğrenci]),1,FINDSTRING(LOWER([Öğrenci])," ",1)),2,LEN(SUBSTRING(TRIM([Öğrenci]),1,FINDSTRING(LOWER([Öğrenci])," ",1))) - 1)) + " " + UPPER(SUBSTRING(SUBSTRING(TRIM([Öğrenci]),FINDSTRING(TRIM([Öğrenci])," ",1) + 1,FINDSTRING(TRIM([Öğrenci])," ",2) - FINDSTRING(TRIM([Öğrenci])," ",1)),1,1)) + LOWER(SUBSTRING(SUBSTRING(TRIM([Öğrenci]),FINDSTRING(TRIM([Öğrenci])," ",1) + 1,FINDSTRING(TRIM([Öğrenci])," ",2) - FINDSTRING(TRIM([Öğrenci])," ",1)),2,LEN(SUBSTRING(TRIM([Öğrenci]),FINDSTRING(TRIM([Öğrenci])," ",1) + 1,FINDSTRING(TRIM([Öğrenci])," ",2) - FINDSTRING(TRIM([Öğrenci])," ",1))) - 1)) + " " + UPPER(TOKEN([Öğrenci]," ",TOKENCOUNT([Öğrenci]," ")))
Yorumlar
Yorum Gönder