SOUNDEX(Transact-SQL)
적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System(PDW)Microsoft Fabric의 SQL 분석 엔드포인트Microsoft Fabric의 웨어하우스
두 문자열의 유사성을 평가하는 4자(SOUNDEX
) 코드를 반환합니다.
구문
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;
예제
A. SOUNDEX 사용
다음 예제에서는 SOUNDEX
함수 및 관련 DIFFERENCE
함수를 보여줍니다. 첫 번째 예에서는 모든 자음에 대해 표준 SOUNDEX
값이 반환됩니다.
Smith
및 Smythe
대한 SOUNDEX
반환하면 모든 모음, 문자 y
, 두 배의 문자 및 h
문자가 포함되지 않으므로 동일한 SOUNDEX
결과가 반환됩니다.
SELECT SOUNDEX('Smith'),
SOUNDEX('Smythe');
결과 집합은 다음과 같습니다.
Latin1_General
데이터 정렬에 유효합니다.
S530 S530
B. DIFFERENCE 사용
DIFFERENCE
함수는 SOUNDEX
패턴 결과의 차이를 비교합니다. 다음 예에서는 모음만 다른 두 문자열을 보여 줍니다. 반환되는 차이는 4
(가능한 최저 차이)입니다.
SELECT DIFFERENCE('Smithers', 'Smythers');
GO
결과 집합은 다음과 같습니다.
Latin1_General
데이터 정렬에 유효합니다.
4
다음 예에서는 문자열의 자음이 다르므로 반환되는 차이는 2
이며 더 많은 차이가 납니다.
SELECT DIFFERENCE('Anothers', 'Brothers');
GO
결과 집합은 다음과 같습니다.
Latin1_General
데이터 정렬에 유효합니다.
2
관련 콘텐츠
- DIFFERENCE(Transact-SQL)
- 문자열 함수(Transact-SQL)
- ALTER DATABASE(Transact-SQL) 호환성 수준