투케이2K

76. (MSSQL/SQL) COLLATION 사용해 DB 언어 설정 확인 및 Korean_Wansung_CS_AS 대문자 , 소문자 구분 조회 실시 본문

MsSqlDB

76. (MSSQL/SQL) COLLATION 사용해 DB 언어 설정 확인 및 Korean_Wansung_CS_AS 대문자 , 소문자 구분 조회 실시

투케이2K 2022. 5. 27. 16:06

[개발 환경 설정]

개발 툴 : SSMS

개발 언어 : MSSQL

 

[소스 코드]

/*
[COLLATION 사용해 DB 언어 설정 확인 및 Korean_Wansung_CS_AS 대문자 , 소문자 구분 조회 실시]
1. SERVERPROPERTY : MSSQL 에서 서버 정보를 확인할 수 있습니다
2. COLLATION : 데이터 베이스 언어 설정을 확인할 수 있습니다
3. CI : 대 / 소문자 미구분 정렬
4. CS : 대 / 소문자 구분 정렬 (소문자 먼저 정렬)
5. AI : 악센트 (성조) 미구분 정렬
6. AS : 악센트 (성조) 구분 정렬
7. KI : 히라가나 및 가타가나 미구분 정렬
8. KS : 히라가나 및 가타가나 구분 정렬
9. WI : 전자와 반자 문자 미구분 정렬
10. WS : 전자와 반자 문자 구분 정렬
11. MSSQL 은 기본 대소문자 구분없이 데이터가 조회되므로 Korean_Wansung_CS_AS 를 사용해 대소문자 구분 및 조회를 실시합니다
12. LIKE : 특정 문자 포함 여부를 확인합니다
*/



/* [데이터 베이스 언어 설정 정보 확인] */
SELECT NAME AS '데이터 베이스 명칭',
       SERVERPROPERTY('COLLATION') AS '데이터 베이스 언어 셋'
FROM SYS.DATABASES;



/* [임시 가상 테이블 만들기 실시] */
WITH SAMPLE_USER AS 
(
  SELECT '홍길동' AS 이름, 15 AS 나이, 'android' AS 디바이스 FROM (SELECT '1' AS DUAL) A
  UNION ALL
  SELECT '임꺾정' AS 이름, 23 AS 나이, 'ANDROID' AS 디바이스 FROM (SELECT '1' AS DUAL) A
)



/* [쿼리문] : 대소문자 확인 조회 실시 */
SELECT 이름,
       나이,
       디바이스,       
       CASE WHEN 디바이스 COLLATE Korean_Wansung_CS_AS LIKE '%a%' THEN '소문자 안드로이드'
            WHEN 디바이스 COLLATE Korean_Wansung_CS_AS LIKE '%A%' THEN '대문자 안드로이드'
            ELSE '알수없음'
       END AS 디바이스종류 
    FROM SAMPLE_USER;
 

[결과 출력]

 

 

반응형
Comments