MS-SQL 에서 특정 문자를 찾는 함수에 대해서 예제를 통해 확인하도록 하자.
우선, CHARINDEX 는 2가지 인수를 사용하는 기본 사용법이 있고, 3가지 인수를 지정하여 특정 위치보다 문자를 찾을 수도 있다.
CHARINDEX
- 2가지 인수를 이용하여 문자열 찾기
-- 구문 사용법
SELECT CHARINDEX('찾을문자열', '지정문자열')
-- EX
SELECT CHARINDEX ('다', '가나다라마바사아') AS Result
- 3가지 인수를 이용하여 지정 위치부터 검색을 시작
SELECT CHARINDEX('찾을문자열', '지정문자열', '검색시작위치')
/*
가나다라마바다사아 의 5번째 위치부터 시작하기 때문에 '다'가 2군데여도 5 이상인 7번째 '다'가 Result 로 표기
*/
SELECT CHARINDEX ('다', '가나다라마바다사아', 5) AS Result
◈ TIP
사용자가 입력한 데이터 중 간혹 개행문자로 인해 원하는 데이터 추출이 진행되지 않는 경우들이 있다.
데이터를 조회해도 눈에 보이지 않는 저장값이 있어 아래의 쿼리가 간혹 필요하다.
/* carriage return - 음표 모양으로 표기되는 경우들 존재 */
SELECT CHARINDEX (CHAR(ASCII(13)), '지정문자열') AS Result
/* line feed - 네모칸 모양으로 표기되는 경우들 존재 */
SELECT CHARINDEX (CHAR(ASCII(10)), '지정문자열') AS Result
'데이터베이스[DB] > MSSQL' 카테고리의 다른 글
[MSSQL] SUM, ISNULL (0) | 2024.03.28 |
---|---|
[MSSQL] MAX, MIN ( 집계함수 ) (0) | 2024.03.27 |
[MSSQL] SET ROWCOUNT n (0) | 2024.03.19 |
[MSSQL] 전체테이블, 프로시저, 인덱스 등 생성 스크립트 (0) | 2024.03.17 |
[MSSQL] CONVERT - 문자열날짜변환 (0) | 2024.03.16 |
[MSSQL] MAX ROW 가져오기 (최대값을 가진 ROW들을 가져오는 법) (0) | 2024.03.15 |
[MSSQL] 임시테이블 활용하기 ( TempTable ) (0) | 2024.03.14 |
[MSSQL] RANK, DENSE_RANK, ROW_NUMBER, PARTITION BY 차이 (0) | 2024.03.12 |