Compartilhar via


SOUNDEX (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System) Ponto de extremidade de análise do SQL Warehouse no Microsoft Fabric

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

Convenções de sintaxe de Transact-SQL

Sintaxe

SOUNDEX ( character_expression )  

Argumentos

character_expression
É uma expression alfanumérica de dados de caractere. 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 um código de quatro caracteres que se baseia no som da cadeia de caracteres quando ela é falada em inglês. 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 ordenações. 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 ou superior, o SQL Server aplica mais um conjunto mais completo das regras.

Após a atualização para o nível de compatibilidade 110 ou superior, 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 persistente 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');  

Veja a seguir o conjunto de resultados. Válido para uma ordenação Latin1_General.

S530  S530    

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  

Veja a seguir o conjunto de resultados. Válido para uma ordenação Latin1_General.

4             

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  

Veja a seguir o conjunto de resultados. Válido para uma ordenação Latin1_General.

2             

Consulte Também

DIFFERENCE (Transact-SQL)
Funções de cadeia de caracteres (Transact-SQL)
Nível de compatibilidade de ALTER DATABASE (Transact-SQL)