문자열의 자음(초성) 추출 함수 만들기
포스팅 개요
실제 문자열 필드에서 자음만 추출하는 함수입니다. 함수 형식으로 한글을 제외한 영문이나 숫자, 특수 문자는 그대로 검색합니다. 자주 사용하지는 않지만 가끔 요청이 들어올 때 생성하는 함수로 없으면 아쉬운 그런 쿼리입니다.
예제 쿼리
예제 쿼리를 복사하여 사용할 데이터베이스에서 실행하면 스칼라 반환 함수가 생성됩니다. 생성 후에는 함수와 인자값을 조합하셔서 사용하시면 됩니다.
- 예제 쿼리를 등록했으면 [Select dbo.Text_Farsing('가나ABCD다라1234')] 쿼리로 간단 테스트가 가능합니다.
- 함수로 등록된 문자열에서 오로지 한글만 자음으로 변경되어 표시됩니다.
- 여러 방식으로 작업해왔지만 이 쿼리가 직관적이어서 수정이 간편했던 경험이 있었습니다.
- 실제 자음만 남기고 모두 삭제하는 식으로 변경한 적도 있습니다.
-- 한글인 경우, 자음 추출
-- 한글이 아닌 경우 그대로 출력
CREATE FUNCTION Text_Farsing(@STR VARCHAR(255)) RETURNS VARCHAR(255)
AS
BEGIN
DECLARE @I INT,
@J INT,
@TMPSTR VARCHAR(255),
@COL1 VARCHAR(2)
SET @I = LEN(@STR)
SET @J = 1
SET @TMPSTR = ''
WHILE (@J <= @I)
BEGIN
SELECT @COL1 = SUBSTRING(@STR, @J, 1)
SET @TMPSTR = @TMPSTR +
CASE
WHEN @COL1 < 'ㄱ' THEN @COL1
WHEN ASCII('ㄱ') <= ASCII(@COL1) AND ASCII(@COL1) <= ASCII('ㅎ') THEN @COL1
WHEN @COL1 < '까' THEN 'ㄱ'
WHEN @COL1 < '나' THEN 'ㄲ'
WHEN @COL1 < '다' THEN 'ㄴ'
WHEN @COL1 < '따' THEN 'ㄷ'
WHEN @COL1 < '라' THEN 'ㄸ'
WHEN @COL1 < '마' THEN 'ㄹ'
WHEN @COL1 < '바' THEN 'ㅁ'
WHEN @COL1 < '빠' THEN 'ㅂ'
WHEN @COL1 < '사' THEN 'ㅃ'
WHEN @COL1 < '싸' THEN 'ㅅ'
WHEN @COL1 < '아' THEN 'ㅆ'
WHEN @COL1 < '자' THEN 'ㅇ'
WHEN @COL1 < '짜' THEN 'ㅈ'
WHEN @COL1 < '차' THEN 'ㅉ'
WHEN @COL1 < '카' THEN 'ㅊ'
WHEN @COL1 < '타' THEN 'ㅋ'
WHEN @COL1 < '파' THEN 'ㅌ'
WHEN @COL1 < '하' THEN 'ㅍ'
WHEN @COL1 <= '힣' THEN 'ㅎ'
ELSE @COL1
END
SET @J = @J + 1
END
RETURN(@TMPSTR)
END
GO
실행 결과
'DataBase > MS-SQL' 카테고리의 다른 글
[MS-SQL] 다중 레코드 INSERT 하기 (0) | 2022.12.24 |
---|---|
[MS-SQL] DB 로그삭제(파일축소) - Version 4 일괄적용 (0) | 2022.12.23 |
[MS-SQL] DB 로그삭제(파일축소) - Version 3 단일적용(간단2) (0) | 2022.12.22 |
[MS-SQL] 물리적인 테이블 크기 확인하기 (0) | 2022.12.18 |
[MS-SQL] 특정 컬럼(Column)의 정보를 이용하여 테이블 검색 (0) | 2022.12.14 |
[MS-SQL] DB 로그삭제(파일축소) - Version 2 단일적용(간단1) (0) | 2022.12.10 |
[MS-SQL] 임시 테이블을 생성하고 활용하자 (0) | 2018.01.03 |
[MS-SQL] DB 로그삭제(파일축소) - Version 1 단일적용(일반) (0) | 2017.12.15 |
댓글