Sắp xếp và so sánh các dữ liệu nhân vật trong SQL Server được xác định bởi các điểm mã chỉ với collations nhị phân.
select ascii(';') as semicolon, ascii('9') as nine where ';' COLLATE Latin1_General_BIN < '9' COLLATE Latin1_General_BIN;
Với collations khác, các quy tắc so sánh và sắp xếp thứ tự là thứ tự từ điển (ký tự đặc biệt trước khi alpha) không phụ thuộc vào thứ tự điểm mã nhị phân tiềm ẩn. Hơn nữa, Windows collations cũng tuân theo các quy tắc "sắp xếp từ" ngôn ngữ. Ví dụ:
SELECT 1 WHERE 'coop' COLLATE SQL_Latin1_General_CP1_CI_AS < 'co-op' COLLATE SQL_Latin1_General_CP1_CI_AS;
SELECT 1 WHERE 'coop' COLLATE Latin1_General_CI_AS < 'co-op' COLLATE Latin1_General_CI_AS;
Nguồn
2015-03-20 02:09:25
Cảm ơn Dan, tôi biết nó sẽ là một điều gì đó bí truyền như thế này. Đẫm máu khó hiểu và làm phiền nếu bạn hỏi tôi! –
@JonHanlon, vâng, nó rất khó hiểu. Điều tốt bạn không hỏi về ngôn ngữ và các trang mã quá :-) –