Compartilhar via


SOUNDEX (Transact-SQL)

Retorna um código de quatro caracteres (SOUNDEX) para avaliar a semelhança de duas cadeias de caracteres.

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

SOUNDEX ( character_expression )

Argumentos

  • character_expression
    É uma expressão alfanumérica de dados de caracteres. character_expression pode ser uma constante, variável ou coluna.

Tipos de retorno

varchar

Comentários

SOUNDEX converte uma cadeia de caracteres alfanumérica em código de quatro caracteres que se baseia no som da cadeia de caracteres quando ela é falada. O primeiro caractere do código é o primeiro caractere de character_expression, convertido em maiúsculas. O segundo até o quarto caractere do código são números que representam as letras da expressão. As letras A, E, I, O, U, H, W e Y serão ignoradas, a menos que elas sejam a primeira letra da cadeia de caracteres. Zeros serão adicionados ao término, se necessário, para gerar um código de quatro caracteres. Para obter mais informações sobre o código SOUNDEX, consulte O sistema de indexação Soundex.

Os códigos de SOUNDEX de cadeias de caracteres diferentes podem ser comparados para verificar a similaridade do som das cadeias de caracteres quando faladas. A função DIFFERENCE executa um SOUNDEX de duas cadeias de caracteres, e retorna um número inteiro que representa o grau de similaridade dos códigos de SOUNDEX dessas cadeias de caracteres.

SOUNDEX diferencia agrupamentos. As funções de cadeia de caracteres podem ser aninhadas.

Compatibilidade com SOUNDEX

Nas versões anteriores do SQL Server, a função SOUNDEX aplicou um subconjunto das regras de SOUNDEX. No nível de compatibilidade de banco de dados 110, SQL Server 2012 aplica mais um conjunto mais completo das regras.

Após a atualização para o nível de compatibilidade 110, talvez seja necessário recriar os índices, os heaps ou as restrições CHECK que usam a função SOUNDEX.

  • Um heap que contém uma coluna computada persistida definida com SOUNDEX não pode ser consultado até que o heap seja reconstruído executando a instrução ALTER TABLE <table> REBUILD.

  • As restrições CHECK definidas com SOUNDEX são desabilitadas após a atualização. Para habilitar a restrição, execute a instrução ALTER TABLE <table> WITH CHECK CHECK CONSTRAINT ALL.

  • Índices (incluindo exibições indexadas) que contêm uma coluna computada persistida definida com SOUNDEX não pode ser consultado até que o índice seja reconstruído executando a instrução ALTER INDEX ALL ON <object> REBUILD.

Exemplos

O exemplo a seguir mostra a função SOUNDEX e a função DIFFERENCE relacionada. No primeiro exemplo, os valores padrão de SOUNDEX são retornados para todas as consoantes. Retornar o SOUNDEX para Smith e Smythe gerará o mesmo resultado SOUNDEX, pois todas as vogais, a letra y, as letras duplicadas e a letra h não são incluídas.

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

Aqui está o conjunto de resultados. válido para um agrupamento Latin1_General.

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

(1 row(s) affected)

A função DIFFERENCE compara a diferença dos resultados de padrão de SOUNDEX. O exemplo a seguir mostra duas cadeias de caracteres que diferem somente nas vogais. A diferença retornada é 4, a mais baixa diferença possível.

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

Aqui está o conjunto de resultados. válido para um agrupamento Latin1_General.

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

(1 row(s) affected)

No exemplo a seguir, as cadeias de caracteres diferem em consoantes; portanto, a diferença retornada é 2, a maior diferença.

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

Aqui está o conjunto de resultados. válido para um agrupamento Latin1_General.

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

(1 row(s) affected)

Consulte também

Referência

DIFFERENCE (Transact-SQL)

Funções de cadeia de caracteres (Transact-SQL)

Nível de compatibilidade de ALTER DATABASE (Transact-SQL)