NEWS
- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
- [C#] Hướng dẫn viết ứng dụng chat với Gemini AI Google Winform
[SQLSERVER] Chia sẽ hàm đọc số thành chữ tiếng việt
Hôm nay, mình xin chia sẽ cho các bạn một function đọc số thành chữ tiếng việt trong sqlserver. Khi chạy hàm xong mình chỉ cần truy vấn để đọc số thành chữ.
[SQLSERVER] Chia sẽ hàm đọc số thành chữ tiếng việt
Chạy câu lệnh đọc số thành chữ:
SELECT dbo.Num2Text(1562300000) AS KETQUA
Source code SQL SERVER
CREATE FUNCTION [dbo].[Num2Text](@Number int)
RETURNS nvarchar(4000) AS
BEGIN
DECLARE @sNumber nvarchar(4000)
DECLARE @Return nvarchar(4000)
DECLARE @mLen int
DECLARE @i int
DECLARE @mDigit int
DECLARE @mGroup int
DECLARE @mTemp nvarchar(4000)
DECLARE @mNumText nvarchar(4000)
SELECT @sNumber=LTRIM(STR(@Number))
SELECT @mLen = Len(@sNumber)
SELECT @i=1
SELECT @mTemp=''
WHILE @i <= @mLen
BEGIN
SELECT @mDigit=SUBSTRING(@sNumber, @i, 1)
IF @mDigit=0 SELECT @mNumText=N'không'
ELSE
BEGIN
IF @mDigit=1 SELECT @mNumText=N'một'
ELSE
IF @mDigit=2 SELECT @mNumText=N'hai'
ELSE
IF @mDigit=3 SELECT @mNumText=N'ba'
ELSE
IF @mDigit=4 SELECT @mNumText=N'bốn'
ELSE
IF @mDigit=5 SELECT @mNumText=N'năm'
ELSE
IF @mDigit=6 SELECT @mNumText=N'sáu'
ELSE
IF @mDigit=7 SELECT @mNumText=N'bảy'
ELSE
IF @mDigit=8 SELECT @mNumText=N'tám'
ELSE
IF @mDigit=9 SELECT @mNumText=N'chín'
END
SELECT @mTemp = @mTemp + ' ' + @mNumText
IF (@mLen = @i) BREAK
Select @mGroup=(@mLen - @i) % 9
IF @mGroup=0
BEGIN
SELECT @mTemp = @mTemp + N' tỷ'
If SUBSTRING(@sNumber, @i + 1, 3) = N'000'
SELECT @i = @i + 3
If SUBSTRING(@sNumber, @i + 1, 3) = N'000'
SELECT @i = @i + 3
If SUBSTRING(@sNumber, @i + 1, 3) = N'000'
SELECT @i = @i + 3
END
ELSE
IF @mGroup=6
BEGIN
SELECT @mTemp = @mTemp + N' triệu'
If SUBSTRING(@sNumber, @i + 1, 3) = N'000'
SELECT @i = @i + 3
If SUBSTRING(@sNumber, @i + 1, 3) = N'000'
SELECT @i = @i + 3
END
ELSE
IF @mGroup=3
BEGIN
SELECT @mTemp = @mTemp + N' nghìn'
If SUBSTRING(@sNumber, @i + 1, 3) = N'000'
SELECT @i = @i + 3
END
ELSE
BEGIN
Select @mGroup=(@mLen - @i) % 3
IF @mGroup=2
SELECT @mTemp = @mTemp + N' trăm'
ELSE
IF @mGroup=1
SELECT @mTemp = @mTemp + N' mươi'
END
SELECT @i=@i+1
END
--'Loại bỏ trường hợp x00
SELECT @mTemp = Replace(@mTemp, N'không mươi không', '')
--'Loại bỏ trường hợp 00x
SELECT @mTemp = Replace(@mTemp, N'không mươi ', N'linh ')
--'Loại bỏ trường hợp x0, x>=2
SELECT @mTemp = Replace(@mTemp, N'mươi không', N'mươi')
--'Fix trường hợp 10
SELECT @mTemp = Replace(@mTemp, N'một mươi', N'mười')
--'Fix trường hợp x4, x>=2
SELECT @mTemp = Replace(@mTemp, N'mươi bốn', N'mươi tư')
--'Fix trường hợp x04
SELECT @mTemp = Replace(@mTemp, N'linh bốn', N'linh tư')
--'Fix trường hợp x5, x>=2
SELECT @mTemp = Replace(@mTemp, N'mươi năm', N'mươi nhăm')
--'Fix trường hợp x1, x>=2
SELECT @mTemp = Replace(@mTemp, N'mươi một', N'mươi mốt')
--'Fix trường hợp x15
SELECT @mTemp = Replace(@mTemp, N'mười năm', N'mười lăm')
--'Bỏ ký tự space
SELECT @mTemp = LTrim(@mTemp)
--'Ucase ký tự đầu tiên
SELECT @Return=UPPER(Left(@mTemp, 1)) + SUBSTRING(@mTemp,2, 4000)
RETURN @Return
END
HAVE FUN :)