Rakam okuma SQL scaler fonksiyonu
#1
Merhaba arkadaşlar Sayın Mustafa DANABAŞI ait olan rakam okuma sql scaler fonksiyonu
aşağıdadır. Test ettim yazılan rakamı yazı ile sonucunu döndüren güzel bir fonksiyon.
Umarım faydalı olur.

Saygılarımla,

SQL
  1. SET ANSI_NULLS ON
  2. SET QUOTED_IDENTIFIER ON
  3. GO
  4.  
  5. CREATE FUNCTION [dbo].[RakamOku] (@Sayi BIGINT)
  6. RETURNS nvarchar(300)
  7. AS
  8. BEGIN
  9. DECLARE @n INT,@i INT,@UcHane INT,@Yed nvarchar(300),@UcluHane nvarchar(300),
  10. @HangiBasamak INT,@Negatif bit,@BasamakYaz bit,@SONUC nvarchar(300)
  11. SET @n=9
  12. SET @SONUC=NULL
  13. BEGIN
  14. SET @SONUC=''
  15. IF (@Sayi=0) SET @SONUC='Sıfır' ELSE BEGIN
  16. IF (@Sayi<0) BEGIN
  17. SET @Negatif=1
  18. SET @Sayi=-@Sayi
  19. END ELSE SET @Negatif=0
  20. SET @HangiBasamak=0;
  21. WHILE (@Sayi>0) BEGIN
  22. SET @UcHane=@Sayi % 1000
  23. SET @Sayi=@Sayi / 1000
  24. IF (@UcHane>0) SET @BasamakYaz=1 ELSE SET @BasamakYaz=0
  25. IF ((@HangiBasamak=1) AND (@UcHane=1)) SET @UcluHane=''
  26. ELSE BEGIN
  27. SET @UcluHane=''
  28. SET @i=@UcHane%10 SET @UcHane=@UcHane/10
  29. SET @UcluHane=CASE @i
  30. WHEN 1 THEN 'Bir'
  31. WHEN 2 THEN 'İki'
  32. WHEN 3 THEN 'Üç'
  33. WHEN 4 THEN 'Dört'
  34. WHEN 5 THEN 'Beş'
  35. WHEN 6 THEN 'Altı'
  36. WHEN 7 THEN 'Yedi'
  37. WHEN 8 THEN 'Sekiz'
  38. WHEN 9 THEN 'Dokuz'
  39. ELSE '' END
  40. SET @i=@UcHane%10 SET @UcHane=@UcHane/10
  41. SET @UcluHane=CASE @i
  42. WHEN 1 THEN 'On'
  43. WHEN 2 THEN 'Yirmi'
  44. WHEN 3 THEN 'Otuz'
  45. WHEN 4 THEN 'Kırk'
  46. WHEN 5 THEN 'Elli'
  47. WHEN 6 THEN 'Altmış'
  48. WHEN 7 THEN 'Yetmiş'
  49. WHEN 8 THEN 'Seksen'
  50. WHEN 9 THEN 'Doksan'
  51. ELSE '' END+@UcluHane
  52. SET @i=@UcHane%10 --SET @UcHane=@UcHane/10
  53. IF (@i>0) SET @Yed='Yüz' ELSE SET @Yed=''
  54. IF (@i>1) SET @Yed=CASE @i
  55. WHEN 1 THEN 'Bir'
  56. WHEN 2 THEN 'İki'
  57. WHEN 3 THEN 'Üç'
  58. WHEN 4 THEN 'Dört'
  59. WHEN 5 THEN 'Beş'
  60. WHEN 6 THEN 'Altı'
  61. WHEN 7 THEN 'Yedi'
  62. WHEN 8 THEN 'Sekiz'
  63. WHEN 9 THEN 'Dokuz'
  64. ELSE '' END+@Yed
  65. SET @UcluHane=@Yed+@UcluHane;
  66. END
  67. IF (@BasamakYaz=1) SET @SONUC=@UcluHane+CASE @HangiBasamak
  68. WHEN 1 THEN 'Bin'
  69. WHEN 2 THEN 'Milyon'
  70. WHEN 3 THEN 'Milyar'
  71. WHEN 4 THEN 'Trilyon'
  72. WHEN 5 THEN 'Katrilyon'
  73. WHEN 6 THEN 'Kentrilyon'
  74. WHEN 7 THEN 'Sekstilyon'
  75. WHEN 8 THEN 'Septilyon'
  76. WHEN 9 THEN 'Oktilyon'
  77. ELSE '' END+@SONUC
  78. SET @HangiBasamak=@HangiBasamak+1
  79. END
  80. IF (@Negatif=1) SET @SONUC='Eksi'+@SONUC
  81. END
  82. END
  83. RETURN @SONUC
  84. END





  Alıntı
Bu mesajı beğenenler:
#2
Sayın Mustafa DANABAŞI'ya ve de size paylaşımınız için çok teşekkür ederiz Metin Bey..



  Alıntı
Bu mesajı beğenenler:
#3
(27-03-2010, 14:01)Taruz demiş ki: Sayın Mustafa DANABAŞI'ya ve de size paylaşımınız için çok teşekkür ederiz Metin Bey..



  Alıntı
Bu mesajı beğenenler:
#4
Teşekkürler. Ellerinize sağlık.



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  Plaka Düzenleme Fonksiyonu monelogg 3 3.335 27-05-2014, 11:25
Son Mesaj: monelogg
  Hatalı TC Kimlikno bulan MS SQL Scaler fonksiyonu metinse 3 5.482 14-02-2010, 23:18
Son Mesaj: assenucler
  Yazıların ilk harfleri büyük diğerlerini küçük yapan SQL Scaler Fonksiyon metinse 4 15.377 14-02-2010, 17:32
Son Mesaj: beab05

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi