다음을 통해 공유


SOUNDEX(Transact-SQL)

두 문자열의 유사성을 평가하기 위한 4자의 SOUNDEX 코드를 반환합니다.

적용 대상: SQL Server(SQL Server 2008 - 현재 버전), Windows Azure SQL 데이터베이스(최초 릴리스 - 현재 릴리스)

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

구문

SOUNDEX ( character_expression )

인수

  • character_expression
    문자 데이터의 영숫자 입니다. character_expression은 상수, 변수 또는 열일 수 있습니다.

반환 형식

varchar

주의

SOUNDEX는 문자열을 말할 때 어떻게 들리는지에 따라 영숫자 문자열을 4자의 코드로 변환합니다. 코드의 첫 번째 문자는 character_expression의 첫 번째 문자이며 대문자로 변환됩니다. 코드의 두 번째부터 네 번째 문자까지의 문자는 식의 문자를 나타내는 숫자입니다. 문자 A, E, I, O, U, H, W 및 Y는 문자열의 첫 문자가 아닌 경우 무시됩니다. 4자로 된 코드를 생성하기 위해 필요한 경우 끝에 0이 추가됩니다. SOUNDEX 코드에 대한 자세한 내용은 Soundex 인덱싱 시스템을 참조하십시오.

다른 문자열의 SOUNDEX 코드는 문자열을 말할 때 얼마나 비슷한지 확인하기 위해 비교할 수 있습니다. DIFFERENCE 함수는 두 개의 문자열에서 SOUNDEX를 수행하고 이러한 문자열에 대해 SOUNDEX 코드가 얼마나 유사한지 나타내는 정수를 반환합니다.

SOUNDEX는 데이터 정렬을 인식합니다. 문자열 함수는 중첩될 수 있습니다.

SOUNDEX 호환성

이전 버전의 SQL Server에서 SOUNDEX 함수는 SOUNDEX 규칙의 하위 집합을 적용했습니다. 데이터베이스 호환성 수준 110 이상에서 SQL Server는 더 자세한 규칙 집합을 적용합니다.

호환성 수준 110 이상으로 업그레이드한 후 SOUNDEX 함수를 사용하는 인덱스, 힙 또는 CHECK 제약 조건을 다시 작성해야 할 수 있습니다.

  • SOUNDEX로 정의된 지속형 계산 열이 포함된 힙은 ALTER TABLE <table> REBUILD 문을 실행하여 힙을 다시 작성한 후에만 쿼리할 수 있습니다.

  • 업그레이드를 수행하면 SOUNDEX를 사용하여 정의된 CHECK 제약 조건이 비활성화됩니다. 이 제약 조건을 활성화하려면 ALTER TABLE <table> WITH CHECK CHECK CONSTRAINT ALL 문을 실행하십시오.

  • SOUNDEX로 정의된 지속형 계산 열이 포함된 인덱스(인덱싱된 뷰 포함)는 ALTER INDEX ALL ON <object> REBUILD 문을 실행하여 인덱스를 다시 작성한 후에만 쿼리할 수 있습니다.

다음 예에서는 SOUNDEX 함수 및 관련된 DIFFERENCE 함수를 보여 줍니다. 첫 번째 예에서는 모든 자음에 대해 표준 SOUNDEX 값이 반환됩니다. Smith 및 Smythe에 대해 SOUNDEX를 반환하면 모든 모음, 문자 y, 이중 문자 및 문자 h가 포함되지 않으므로 똑같은 결과가 반환됩니다.

-- Using SOUNDEX
SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe');

결과 집합은 다음과 같습니다. Latin1_General 데이터 정렬에 대해 유효합니다.

----- ----- 
S530  S530  

(1 row(s) affected)

DIFFERENCE 함수는 SOUNDEX 패턴 결과의 차이를 비교합니다. 다음 예에서는 모음만 다른 두 문자열을 보여 줍니다. 반환되는 차이는 4(가능한 최저 차이)입니다.

-- Using DIFFERENCE
SELECT DIFFERENCE('Smithers', 'Smythers');
GO

결과 집합은 다음과 같습니다. Latin1_General 데이터 정렬에 대해 유효합니다.

----------- 
4           

(1 row(s) affected)

다음 예에서는 문자열의 자음이 다르므로 반환되는 차이는 2이며 더 많은 차이가 납니다.

SELECT DIFFERENCE('Anothers', 'Brothers');
GO

결과 집합은 다음과 같습니다. Latin1_General 데이터 정렬에 대해 유효합니다.

----------- 
2           

(1 row(s) affected)

참고 항목

참조

DIFFERENCE(Transact-SQL)

문자열 함수(Transact-SQL)

ALTER DATABASE 호환성 수준(Transact-SQL)