Bài viết mới

[DATABASE] Chia sẽ hàm định dạng chữ hoa ký tự đầu tiên (capitalize) hay Sentence Case

[DATABASE] Chia sẽ hàm định dạng chữ hoa ký tự đầu tiên (capitalize) hay Sentence Case
Đăng bởi: Thảo meo - Lượt xem: 292 09:05:40, 05/12/2018DATABASE   In bài viết

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.

[DATABASE] Chia sẽ function Captialize String trong 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:

  1. Upper() => định dạng chữ thường sang chữ hoa
  2. 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:

capital_sqlserver

HAVE FUN :)

Tags: capitalize string sqlserversentence case sql

BÀI VIẾT LIÊN QUAN

[DATABASE] Chia sẽ hàm định dạng chữ hoa ký tự đầu tiên (capitalize) hay Sentence Case
Đăng bởi: Thảo meo - Lượt xem: 292 09:05:40, 05/12/2018DATABASE   In bài viết

THẢO LUẬN BÀI VIẾT