Tôi đang cố gắng tìm các bản ghi chứa một chuỗi gồm 6 ký tự chữ và số bằng chữ hoa. Một số ví dụ:Làm cách nào để thực hiện tìm kiếm phân biệt chữ hoa chữ thường bằng cách sử dụng LIKE?
PENDING 3RDPARTY CODE27
Tôi đang sử dụng các tuyên bố sau:
SELECT Details
FROM MyTable
WHERE Details LIKE '%[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]%';
này được trả lại tất cả hồ sơ có chứa bất kỳ từ 6-or-nhiều chữ, không phân biệt trường hợp.
Tôi đã thêm một tuyên bố COLLATE
:
SELECT Details
FROM MyTable
WHERE Details COLLATE Latin1_General_CS_AS LIKE '%[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]%';
này thay đổi gì cả. Nó vẫn trả về các bản ghi có từ 6 chữ cái trở lên, bất chấp trường hợp nào.
Cũng giống như một thử nghiệm, tôi đã cố gắng:
SELECT Details
FROM MyTable
WHERE Details COLLATE Latin1_General_CS_AS LIKE '%pending%';
SELECT Details
FROM MyTable
WHERE Details COLLATE Latin1_General_CS_AS LIKE '%PENDING%';
Cả hai làm việc, trở về hồ sơ có chứa "chờ" và "CHƯA" tương ứng. Vì vậy, vấn đề dường như là do sự phù hợp với mẫu của một số trang của LIKE
.
Tôi có thể làm gì để thực hiện tìm kiếm phân biệt chữ hoa chữ thường này?
thử sử dụng COLLATE Latin1_General_BIN –
Hoàn hảo! Bạn muốn làm cho câu trả lời đó? –
Tại sao? Để có được một vài điểm. Tôi chỉ thích sự hài lòng khi biết rằng tôi đã giúp. –