SQL Server’da Nakit ve Kredi Kartı Kontrolü Sağlayan Fonksiyon

Herkese merhaba,

Bu yazıda SQL Server’da Nakit ve Kredi Kartı kontrolü sağlayan fonksiyon hakkında bilgi vereceğim.

Makalenin çıkış noktası Linkedin ortamında bir arkadaşın soruyu özelden bana sormasıdır.

Soru şu şekilde : Bir kullanıcı bilgileri içerisinde, Nakit Hesap ve Kredi Kartı hesabı bilgileri bulunuyor. Eğer kullanıcının Nakit hesabı dolu ise, SQL’den Nakit hesap dönecek. Eğer Kredi Kartı hesabı dolu ise Nakit ve Kredi Kartı şeklinde 2 satır dönecek.

Sorunun çözümünü fonksiyon kullanarak yaptım. SQL sorgu cümlesi içinde de soru çözülebilir diyenler olacaktır fakat o şekilde bir çözüm zaten bana göndermişti.

Aşağıdaki tabloyu oluşturup sonrasında ilgili fonksiyonu kullanarak siz de bu işlemi rahatlıkla yapabilirsiniz.

--Test tablonun oluşturulması

CREATE TABLE [dbo].[Tmp_Kullanici_Veri]
(
    [NakitHesapKodu] [NVARCHAR](50) NULL,
    [KrediKartıHesapKodu] [NVARCHAR](50) NULL,
    [KullaniciAdi] [NVARCHAR](50) NULL
) ON [PRIMARY];
GO


-- Test tablo içerisine veri eklenmesi

INSERT [dbo].[Tmp_Kullanici_Veri]
(
    [NakitHesapKodu],
    [KrediKartıHesapKodu],
    [KullaniciAdi]
)
VALUES
(N'120.01.001', NULL, N'Yavuz Selim Kart'),
(NULL, N'120.01.002', N'Hasan Ali Kart'),
('120.01.003', N'120.01.004', N'Bilge Nuray Kart');
GO


--Fonksiyonun oluşturulması

CREATE FUNCTION fn_HesapGetir
(
    @KullaniciAdi NVARCHAR(50)
)
RETURNS @SonucTablosu TABLE
(
    HesapAdet NVARCHAR(50)
)
AS
BEGIN

    DECLARE @NakitHesapKodu NVARCHAR(50);
    DECLARE @KrediKartıHesapKodu NVARCHAR(50);

    SELECT @NakitHesapKodu = NakitHesapKodu,
           @KrediKartıHesapKodu = KrediKartıHesapKodu
    FROM Tmp_Kullanici_Veri
    WHERE KullaniciAdi = @KullaniciAdi;

    IF @NakitHesapKodu <> ''
    BEGIN
        INSERT INTO @SonucTablosu
        (
            HesapAdet
        )
        SELECT 'Nakit Hesap';

    END;
    IF @KrediKartıHesapKodu <> ''
    BEGIN
        INSERT INTO @SonucTablosu
        (
            HesapAdet
        )
        SELECT 'Kredi Kartı Hesap';
    END;
    RETURN;

END;

--Kullanımı

SELECT *
FROM dbo.fn_HesapGetir('Yavuz Selim Kart');
SELECT *
FROM dbo.fn_HesapGetir('Hasan Ali Kart');
SELECT *
FROM dbo.fn_HesapGetir('Bilge Nuray Kart');

Yukarıdaki kodları çalıştırdığınızda aşağıdakine benzer bir sonuç göreceksiniz.

SQL Server'da Nakit ve Kredi Kartı Kontrolü Sağlayan Fonksiyon3

Görüldüğü üzere Nakit Hesap için Nakit Hesap, Kredi Kartı Hesap için Kredi Kartı Hesap, her ikisi için de Nakit Hesap ve Kredi Kartı Hesap bilgileri gelmiş oldu.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

585 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!