• Merhaba Ziyaretçi,
    Microsoft 365 Uygulamaları ile ilgili yeni haberler, dikkat çekici konular, ilgi ile takip edeceğiniz yazılar için.

    Abone Olun
  • ESTE - Microsoft Office Eğitimleri

    Yeni yıl Microsoft Office Eğitim planlarınız için bütçenizi oluşturmadan önce ESTE eğitim kalitesi ile tanışın. 🙌
    Kullanıcıların ihtiyacı olan yazılı materyal, dosya ve video kaynağı desteğimiz ile tüm ofis çalışanlarının iş süreçlerini rahatlatacak eğitimler planlayın. 🎯
    Microsoft Office eğitimlerimiz hakkında detaylı bilgi için bize ulaşın.

    👉 Microsoft Office Eğitim Talebi

SQL KTF Sayıyı Yazıya Çeviren KTF

Murat OSMA

Yönetici
Site Yöneticisi
Katılım
25 May 2018
Mesajlar
1,506
En iyi yanıt
13
Puanları
113
Konum
İstanbul
Web sitesi
excelarsivi.com
Ad Soyad
Murat OSMA
Office Vers.
Office 365 TR+EN
Ms SQL ile sayıyı yazıya çevirmek için aşağıdaki kullanıcı tanımlı fonksiyon oluşturulduktan sonra sorgu içinde istediğimiz yerde kullanabilirsiniz.

SQL:
CREATE FUNCTION [dbo].[FN_RAKAMYAZ] (@Sayi bigint)

RETURNS nvarchar(300)
AS
BEGIN
DECLARE @n int,@i int,@UcHane int,@Yed nvarchar(300),@UcluHane nvarchar(300),
@HangiBasamak int,@Negatif bit,@BasamakYaz bit,@SONUC nvarchar(300)
SET @n=9
SET @SONUC=NULL
BEGIN
SET @SONUC=''
IF (@Sayi=0) SET @SONUC='Sıfır' ELSE
BEGIN
IF (@Sayi<0) BEGIN
SET @Negatif=1
SET @Sayi=-@Sayi
END ELSE SET @Negatif=0
SET @HangiBasamak=0;
WHILE (@Sayi>0)
BEGIN
SET @UcHane=@Sayi % 1000
SET @Sayi=@Sayi / 1000
IF (@UcHane>0) SET @BasamakYaz=1 ELSE SET @BasamakYaz=0
IF ((@HangiBasamak=1) and (@UcHane=1)) SET @UcluHane=''
ELSE BEGIN
SET @UcluHane=''
SET @i=@UcHane%10 SET @UcHane=@UcHane/10
SET @UcluHane=CASE @i
WHEN 1 THEN 'Bir'
WHEN 2 THEN 'İki'
WHEN 3 THEN 'Üç'
WHEN 4 THEN 'Dört'
WHEN 5 THEN 'Beş'
WHEN 6 THEN 'Altı'
WHEN 7 THEN 'Yedi'
WHEN 8 THEN 'Sekiz'
WHEN 9 THEN 'Dokuz'
ELSE '' END
SET @i=@UcHane%10 SET @UcHane=@UcHane/10
SET @UcluHane=CASE @i
WHEN 1 THEN 'On'
WHEN 2 THEN 'Yirmi'
WHEN 3 THEN 'Otuz'
WHEN 4 THEN 'Kırk'
WHEN 5 THEN 'Elli'
WHEN 6 THEN 'Altmış'
WHEN 7 THEN 'Yetmiş'
WHEN 8 THEN 'Seksen'
WHEN 9 THEN 'Doksan'
ELSE '' END+@UcluHane
SET @i=@UcHane%10
IF (@i>0) SET @Yed='Yüz' ELSE SET @Yed=''
IF (@i>1) SET @Yed=CASE @i
WHEN 1 THEN 'Bir'
WHEN 2 THEN 'İki'
WHEN 3 THEN 'Üç'
WHEN 4 THEN 'Dört'
WHEN 5 THEN 'Beş'
WHEN 6 THEN 'Altı'
WHEN 7 THEN 'Yedi'
WHEN 8 THEN 'Sekiz'
WHEN 9 THEN 'Dokuz'
ELSE '' END+@Yed
SET @UcluHane=@Yed+@UcluHane;
END
IF (@BasamakYaz=1) SET @SONUC=@UcluHane+CASE @HangiBasamak
WHEN 1 THEN 'Bin'
WHEN 2 THEN 'Milyon'
WHEN 3 THEN 'Milyar'
WHEN 4 THEN 'Trilyon'
WHEN 5 THEN 'Katrilyon'
WHEN 6 THEN 'Kentrilyon'
WHEN 7 THEN 'Sekstilyon'
WHEN 8 THEN 'Septilyon'
WHEN 9 THEN 'Oktilyon'
ELSE '' END+@SONUC
SET @HangiBasamak=@HangiBasamak+1
END
IF (@Negatif=1) SET @SONUC='Eksi'+@SONUC
END
END
RETURN @SONUC
END

Fonksiyon oluşturulduktan sonra aşağıdaki gibi kullanılır.
SELECT dbo.FN_RAKAMYAZ (158490) AS YAZIYLA

Sonuç
YüzElliSekizBinDörtYüzDoksan

Veya aşağıdaki gibi kullanılır.
SELECT URUNADI,TUTAR,dbo.FN_RAKAMYAZ (TUTAR) AS YAZIYLA FROM URUNLER
 
Üst Alt