본문 바로가기
오라클 게시판/오라클 함수

[오라클 SQL 함수] SOUNDEX 함수

by 기서무나구물 2021. 10. 20.

포스팅 목차

     

    SOUNDEX

     


    문법

     

    soundex::=

     


    목적  

    SOUNDEX함수는 문자열 인수 char와 동일한 음성 표현을 가지는 문자열을 반환한다.

    이 함수는 스펠링이 틀려도 발음이 유사한 영단어를 비교할 수 있다.

    음성 표현은 "The Art of Computer Programming, Volume 3: Sorting and Searching"(Donald E.Knuth 저)에서 다음과 같이 정의되고 있다.

    1. 문자열의 최초 문자를 남겨서 a, e, h, i, o, u, w, y의 문자가 나왔을 경우에는 모두 삭제한다.
    2. 남은 문자(첫 문자 후에) 다음과 같이 숫자를 할당한다. b, f, p, v = 1 c, g, j, k, q, s, x, z = 2 d, t = 3 l = 4 m, n = 5 r = 6
    3. 만약 같은 수치를 가지는 2개 이상의 문자가 오리지널 이름에서 인접해있거나(첫 번째 스텝 전) 또는 h와 w 사이의 문자를 제외하고 인접해 있다면, 최초 문자 이외의 모든 문자를 삭제한다.
    4. 0을 붙여서 최초의 4바이트를 반환한다.

    char은 CHAR,VARCHAR2,NCHAR,NVARCHAR2 데이터 형이다. 반환되는 값은 char과 같은 데이터형이다.

    이 함수는 CLOB데이터를 직접 지원하지 않는다. 다만, 암묵적인 데이터 변환을 통해서 인수로써 전달될 수 있다.

     


    예제 

    다음 예제는 "Smyth"와 같은 음성 표현을 가지는 종업원을 반환한다.

    Oracle Program
    SELECT last_name, first_name
    FROM   hr.employees
    WHERE  SOUNDEX(last_name) = SOUNDEX('SMYTHE');

     

    Results
    LAST_NAME  FIRST_NAME
    ---------- ----------
    Smith      Lindsey
    Smith      William

     

     


    오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크

     

    [SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE] SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트 링크
    반응형

    댓글