[DATABASE] Chia sẽ hàm định dạng chữ hoa ký tự đầu tiên (capitalize) hay Sentence Case
Xin chào các bạn, bài viết hôm nay, mình sẽ chia sẽ cho các bạn hàm định dạng chữ Hoa đầu tiên trong String của Sqlserver. Giống như trong Microsoft Word, có cung cấp cho chúng ta format Sentence case . VD: NGUYỄN THẢO hoặc nguyễn thảo => Nguyễn Thảo ...
Xin chào các bạn, bài viết hôm nay, mình sẽ chia sẽ cho các bạn hàm định dạng chữ Hoa đầu tiên trong String của Sqlserver.
Giống như trong Microsoft Word, có cung cấp cho chúng ta format Sentence case.
VD: NGUYỄN THẢO hoặc nguyễn thảo => Nguyễn Thảo
Nghĩa là viết hoa chữ cái đầu tiên.
Nhưng trong Microsoft Sqlserver, chỉ có cung cấp cho chúng ta hai hàm cơ bản:
- Upper() => định dạng chữ thường sang chữ hoa
- Lower() => định dạng chữ hoa sang chữ thường
Vì vậy các bạn muốn viết hoa chữ cái đầu tiên thì các bạn tạo cho mình một function fn_capitalize với source code bên dưới:
CREATE FUNCTION dbo.fn_capitalize ( @str AS nvarchar(100) ) RETURNS nvarchar(100) AS BEGIN DECLARE @ret_str AS NVARCHAR(100), @pos AS int, @len AS int SELECT @ret_str = N' ' + LOWER(@str), @pos = 1, @len = LEN(@str) + 1 WHILE @pos > 0 AND @pos < @len BEGIN SET @ret_str = STUFF(@ret_str, @pos + 1, 1, UPPER(SUBSTRING(@ret_str,@pos + 1, 1))) SET @pos = CHARINDEX(N' ', @ret_str, @pos + 1) END RETURN RIGHT(@ret_str, @len - 1) END
Cách sử dụng:
select tennv, dbo.fn_capitalize(tennv) AS Capitalize from dbo.tbl_nhanvien
Và dưới đây là kết quả trả về như chúng ta mong muốn:
HAVE FUN :)