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.
3
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.