본문 바로가기
데이터베이스/MSSQL

대소문자 구별하여 조회하기

by 브래드.권 2013. 11. 5.

 

 

테이블에 데이터를 대소문자를 구분하여 조회해야 하는 경우 만약, DB 나 테이블이 Collation(데이터 정렬)이 Case Insensitive 로 하여 생성되었다면 단순 조회로는 대소문자 구분하여 조회가 되질 않습니다. (테이블의 경우 기본적으로 DB 의 Collation 을 따라갑니다.)

 

이럴 경우 DB 또는 테이블의 Collation 을 변경하거나 재생성하지 않고 쿼리에 아래와 같이 WHERE 정의 컬럼명 뒤에 COLLATE 옵션을 줘서 조회할 수 있습니다.

 

여기서는 Korean_WanSung_CS_AS 를 사용하였으며 테이블의 Collation 은 Korean_WanSung_CI_AS 입니다.

위 Collation 명을 보시면 뒤에 CI/CS 와 AS 가 있는데 이에 대한 설명은 아래와 같습니다.

CI: Case Insensitive

CS: Case Sensitive

AS: Accent Sensitive

(CI/CS 와 마찬가지로 AS 도 AI: Accent Insensitive 가 있습니다.)

 

DECLARE @tmp TABLE(
	 Col_1 VARCHAR(30)
)

INSERT INTO @tmp VALUES('abc')
INSERT INTO @tmp VALUES('aBc')
INSERT INTO @tmp VALUES('ABC')

SELECT * FROM @tmp WHERE Col_1 COLLATE Korean_WanSung_CS_AS = 'aBc'