테이블에 데이터를 대소문자를 구분하여 조회해야 하는 경우 만약, 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'
'데이터베이스 > MSSQL' 카테고리의 다른 글
WHERE 절에 변수나 파라미터로 데이터 필터링하기 팁 (0) | 2013.09.11 |
---|---|
Login 계정과 DB 사용자 계정 강제 연결하기 (0) | 2013.03.27 |
yyyymmddhhmmss 형식으로 된 시간 문자열을 datetime 형식으로 변환하는 방법 (0) | 2013.03.27 |
[2000/2005] MD5 암호화 사용하기 (0) | 2013.03.27 |
DB 개체들의 의존성 확인하기 (0) | 2013.03.26 |