SQL Padleft Fonksiyonu

Microsoft SQL konuları
Cevapla
Kullanıcı avatarı
Tarkan VURAL
Doğrulandı
Site Admin
Mesajlar: 59
Kayıt: Prş Haz 22, 2023 12:03 am
Lokasyon: İstanbul
Web Sitesi: http://www.tarkanvural.com.tr
Meslek: Yazılım ve Veri Tabanı Uzmanı
Adınız: Tarkan
Soyadınız: VURAL
İletişim:

SQL Padleft Fonksiyonu

Mesaj gönderen Tarkan VURAL »

Yazılımlarda kullandığımız gibi bazen SQL query cümleleri yazarken de tamamlama yapma ihtiyacımız doğabiliyor.
Örneğin bir değerin 8 karakter olması zorunluluğu varsa ve başına sabit karakterler eklemek istiyorsak, eldeki değerin önce uzunluğunu biliyor olmamız gerekiyor. Sonra bunu tamamlama yapma şekliyle dönüştürmemiz gerekiyor.

Örneğin;
Elimizdeki değer 1234 ise ve biz bunu aslında 00001234 olarak göstermek istiyorsak, önce SQL içinde aşağıdaki fonksiyonu oluşturmamız gerekiyor.

Kod: Tümünü seç

IF OBJECT_ID('Evn_PadLeft', 'FN') IS NULL
BEGIN
EXEC(
   'CREATE FUNCTION [dbo].[Evn_PadLeft]
      (
        @EvnText NVARCHAR(MAX) ,
        @EvnReplace NVARCHAR(MAX) ,
        @EvnLen INT
      )
RETURNS NVARCHAR(MAX)
AS
    BEGIN 
        DECLARE @EvnInt NVARCHAR(MAX) 
        SELECT @EvnInt = ISNULL(LTRIM(RTRIM(@EvnText)) , '''')
        RETURN RIGHT(REPLICATE(@EvnReplace,@EvnLen)+ @EvnInt, @EvnLen)
    END'
)
END 
Sonra SQL cümlesini aşağıdaki gibi yazabiliriz :

Kod: Tümünü seç

SELECT dbo.Evn_Padleft('1234','0',8) 

Kod: Tümünü seç

SELECT dbo.Evn_Padleft('elimizdeki değer','başa eklenecek karakter', toplam basamak sayısı) 
Sonuç olarak 00001234 döndürecektir.

Ya da;
Değerimiz 1234 ve biz bunu yasal mevzuattaki gibi 16 karakterli FAT2023000001234 e-Fatura numarası gibi oluşturacağız.

Kod: Tümünü seç

SELECT 'FAT'+CAST(YEAR(GETDATE())AS varchar(5))+dbo.Evn_Padleft('1234','0',9)
bu şekilde istediğimiz sonucu döndürecektir.
Konu Dışı
Logo Yazılım, Özel Yazılım, Entegrasyon işlemleri, Excel VBA kodlama, Raporlama, Eğitim.. gibi konulardaki destek ihtiyaçlarınız içinhelpdesk@evnyazilim.com.trile irtibata geçebilirsiniz.
Cevapla
  • Benzer Konular
    Cevaplar
    Görüntüleme
    Son mesaj
  • Logo Sql SUM sorgusu
    gönderen ykslk » » forum Logo Query
    1 Cevaplar
    2575 Görüntüleme
    Son mesaj gönderen islakates
  • sql
    gönderen akcanadana » » forum SQL Veritabanları
    5 Cevaplar
    2044 Görüntüleme
    Son mesaj gönderen tasad
  • Malzeme(Stok) Muhasebe Kodları Listesi SQL Sorgusu
    gönderen Tarkan VURAL » » forum Logo Query
    0 Cevaplar
    15 Görüntüleme
    Son mesaj gönderen Tarkan VURAL