2016-09-08 6 views
4
내가

SQL 서버 - 정렬 - Latin1_General_CI_AS 및 Latin1_General_CS_AS

SELECT * 
FROM (VALUES ('A'),('B'),('Y'),('Z'), ('a'),('b'),('y'),('z')) V(C) 
ORDER BY C COLLATE Latin1_General_CS_AS 

SELECT * 
FROM (VALUES ('A'),('B'),('Y'),('Z'), ('a'),('b'),('y'),('z')) V(C) 
ORDER BY C COLLATE Latin1_General_CI_AS 

의 차이를 볼 수있는 방법

의 차이?. 이 문자 세트에는 차이점이 없습니다.

건배 바르 토스

답변

1

'는 케이스 sesitive 첫 번째 테이블 들어 C.

SELECT * 
FROM (VALUES (1,'a'),(2,'b'),(3,'y'),(4,'z'),(5,'A'),(6,'B'),(7,'Y'),(8,'Z'),(9,'a'),(10,'b'),(11,'y'),(12,'z')) V(ID,C) 
ORDER BY C COLLATE Latin1_General_CS_AS,ID 

SELECT * 
FROM (VALUES (1,'a'),(2,'b'),(3,'y'),(4,'z'),(5,'A'),(6,'B'),(7,'Y'),(8,'Z'),(9,'a'),(10,'b'),(11,'y'),(12,'z')) V(ID,C) 
ORDER BY C COLLATE Latin1_General_CI_AS,ID 

의해 주문 후 그하여 값들의 세트 및 주문 정수 ID 열에 추가 '<>'A '이므로 별개로 취급됩니다. 우리의 순서는 ID에 의해 소에게 제 다음 명령들을 둔다 (1, 9), 그리고 대문자 A. 번째 테이블에서

ID C 
1 a 
9 a 
5 A 

, 'A'= 'A'를 다음 때문에 다룬다 동일한 그룹 및 3에서 (또는 A) 값은 ID 번호

ID C 
1 a 
5 A 
9 a 

함께 정렬이 패턴은 B, Y 및 Z에 대해 계속된다.

+0

감사합니다. 바이너리 정렬이된다면 나는 ABCabc를 가질 것이다. AaBaCa를 갖고 싶다면 어떤 조합을 사용해야합니까? –

+0

'ORDER BY C COLLATE Latin1_General_CI_AS, C COLLATE Latin1_General_CS_AS desc'를 사용하면 각 문자 그룹을 대소 문자를 구분하지 않고 순서대로 정렬 한 다음 대소 문자를 먼저 정렬합니다 ('desc'). – BeanFrog

+0

BeanFrog 고마워요 –