Cách viết điều kiện với giá trị có dấu Tiếng Việt trong SQL Server Management Studio (SSMS)
Khi xử lý dữ liệu, phân tích dữ liệu bằng ngôn ngữ Việt Nam, chắc chắn việc gặp các điều kiện lọc dữ liệu với nội dung dữ liệu có dấu Tiếng Việt là điều không thể tránh khói. Bạn hãy cùng MasterMOS Education tìm hiểu về cách xử lý các điều kiện với những giá trị có dấu Tiếng Việt Unicode này nhé.
Làm thế nào để lọc điều kiện với các giá trị có dấu Tiếng Việt?
Để lọc được đúng giá trị có dấu tiếng Việt Unicode trong câu lệnh WHERE, ta sẽ bổ sung chữ N trước giá trị của điều kiện cần so sánh. Việc chúng ta cho thêm chữ N phía trước để báo cho SQL Server biết là chúng ta đang làm việc với chuỗi ký tự dạng Unicode.
SELECT * FROM TEN_DATABASE.dbo.TEN_BANG
WHERE DIEU_KIEN = N‘GIÁ TRỊ CÓ DẤU TIẾNG VIỆT’
–HOẶC
SELECT * FROM TEN_DATABASE.dbo.TEN_BANG
WHERE DIEU_KIEN IN ( N’GIÁ TRỊ CÓ DẤU TIẾNG VIỆT 1′, N’GIÁ TRỊ CÓ DẤU TIẾNG VIỆT 2′, N’GIÁ TRỊ CÓ DẤU TIẾNG VIỆT 3′)
Hoặc hiển thị giá trị của cột trong câu lệnh SELECT
SELECT ‘HỌC SQL THẬT LÀ THÚ VỊ’ AS TEN_COT
SELECT N’HỌC SQL THẬT LÀ THÚ VỊ’ AS TEN_COT
Việc chúng ta cho thêm chữ N phía trước để báo cho SQL Server biết là chúng ta đang làm việc với chuỗi ký tự dạng Unicode (N là viết tắt của National language character). Viết N có nghĩa là chúng ta đang truyền vào giá trị dạng Nchar, nvarchar hoặc ntext, thay vì truyền vào dạng Char, varchar, và text như mặc định của SQL Server.
Theo giải thích của Microsoft như sau:
Prefix Unicode character string constants with the letter N. Without the N prefix, the string is converted to the default code page of the database. This default code page may not recognize certain characters.
Tiền tố N thể hiện chuỗi ký tự dạng Unicode. Không có tiền tố N, chuỗi được chuyển đổi sang trang mã mặc định của cơ sở dữ liệu. Trang mã mặc định này có thể không nhận ra các ký tự nhất định.
Bài viết này là một phần trong Series “Học SQL xử lý, phân tích dữ liệu cùng chuyên gia MasterMOS”. Bạn hãy vào click vào link để xem toàn bộ Series bài viết, dễ dàng làm chủ SQL để xử lý, phân tích dữ liệu lớn cùng chúng tôi nhé.