Tôi cần truy vấn SQL để tạo tất cả dữ liệu trong một cột TĂNG CASE?
Có ý kiến gì không?
Câu trả lời:
Nếu bạn chỉ muốn cập nhật trên các hàng hiện không phải là chữ hoa (thay vì tất cả các hàng), bạn cần xác định sự khác biệt bằng cách sử dụng COLLATE
như sau:
UPDATE MyTable
SET MyColumn = UPPER(MyColumn)
WHERE MyColumn != UPPER(MyColumn) COLLATE Latin1_General_CS_AS
Độ phân biệt chữ hoa chữ thường dựa trên cài đặt đối chiếu của bạn và thường không phân biệt chữ hoa chữ thường theo mặc định.
Đối chiếu có thể được đặt ở Cấp máy chủ, Cơ sở dữ liệu, Cột hoặc Truy vấn :
-- Server
SELECT SERVERPROPERTY('COLLATION')
-- Database
SELECT name, collation_name FROM sys.databases
-- Column
SELECT COLUMN_NAME, COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE CHARACTER_SET_NAME IS NOT NULL
Tên đối chiếu chỉ định cách mã hóa và đọc một chuỗi, ví dụ:
Latin1_General_CI_AS
→ Không phân biệt chữ hoa chữ thườngLatin1_General_CS_AS
→ Phân biệt chữ hoa chữ thường