Bir Stringi Belirli Bir Karakterle Doldurmak , Ayni Karakterden Belirli Sayida Üretmek

Bir Stringi Belirli Bir Karakterle Doldurmak (Replicate fonksiyonu):

SQL Serverda bazen bir kolon içindeki veriyi belirli bir uzunluga kadar sabit bir karakterle doldurmaya ihtiyaç duyariz. Örnegin para miktarini tutan bir alanda 1.25 olan degeri 001.25 olarak 10.65 olan bir degeride 010.65 seklinde göstermek isteyebiliriz. Bu durumda SQL Serverda Replicate fonksiyonunu kullanabiliriz.

Kullanimi :

Replicate('karakter',kac_adet)
Yukaridaki örnekde de görüldügü gibi birinci parametre olarak üretilecek stringi, ikinci parametre olarak ise kaç adet üretilecegini giriyoruz.

Replicate Kullanim Örnegi:

select Replicate('*',10)

 

Sonuç : 10 adet * karakteri olacaktir "**********"

Peki tablodan okudugumuz bir degerin sagina veya soluna kolondaki verinin uzunluguna göre degisken olarak belirli bir karakter basmak istersek ne yapabiliriz.

DECLARE @t AS varchar(100) SELECT @t = 'YazilimMutfagi' SELECT Replicate('*',20-Len(@t))+@t
Sonuç : ******YazilimMutfagi

Yukaridaki örnekte @t ile tanimladigimiz degiskenin soluna string olarak 20 karakteri tamamlayana kadar * karakteri yerlestirdik. 20-len(@t) bize 6 degeri döndürdügü için toplan 6 tane * karakteri üretmis olduk.

DECLARE @t AS int SELECT @t = 100 SELECT cast(Replicate('0',10-Len(@t))+cast(@t as varchar(10)) as varchar(10))

Sonuç : 0000000100

Bu örnekte ise int tipindeki bir degiskebin soluna 10 karaktere kadar 0 koymus olduk.

2 thoughts on “Bir Stringi Belirli Bir Karakterle Doldurmak , Ayni Karakterden Belirli Sayida Üretmek

  1. PEKI BU Cümle içerisinde nasil kullanabilirim bunu.. URUNSTOKKODU kodunu kodun önüne 0 ekleyerek yirmi haneye tamamlamam gerekiyor. yardimci olurmusunuz.

    SELECT     SNO, NO, SUBSTRING(DATA, 1, 1) AS KAYITTIPI, SUBSTRING(DATA, 2, 13) AS URUNBIRIMFIYATI, SUBSTRING(DATA, 15, 1) AS URUNOLCUBIRIMI, SUBSTRING(DATA, 16, 6) AS MIKTAR,  SUBSTRING(DATA, 22, 8) AS SATICIKODU, SUBSTRING(DATA, 30, 20) AS VERIGIRISALANI,SUBSTRING(DATA, 50, 20) AS URUNSTOKKODU, SUBSTRING(DATA, 70, 9) AS BOSALAN, SUBSTRING(DATA, 79, 2) AS KAYITSONUKARAKTERI
    FROM         dbo.TDT_DATA
    WHERE     (DATA LIKE ‘E%’)

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir