Partilhar via


SOUNDEX (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Ponto de Extremidade de Análise SQL no Microsoft FabricArmazém no Microsoft FabricBase de Dados SQL no Microsoft Fabric

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

Transact-SQL convenções de sintaxe

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 devolução

varchar

Comentários

SOUNDEX converte uma cadeia alfanumérica em um código de quatro caracteres baseado em como a cadeia soa quando falada em inglês. O primeiro caractere do código é o primeiro caractere de character_expression, convertido em maiúsculas. O segundo a quarto caracteres do código são números que representam as letras na expressão. As letras A, E, I, O, U, H, We Y são ignoradas, a menos que sejam a primeira letra da cadeia de caracteres. Se necessário, são adicionados zeros no final para produzir um código de quatro caracteres. Para obter mais informações sobre o código SOUNDEX, consulte The Soundex Indexing System.

SOUNDEX códigos de cordas diferentes podem ser comparados para ver como as cordas soam semelhantes quando faladas. A função DIFFERENCE() executa um SOUNDEX em duas cadeias de caracteres e retorna um inteiro que representa o quão semelhantes são os códigos SOUNDEX para essas cadeias de caracteres.

SOUNDEX é sensível ao agrupamento. As funções de cadeia de caracteres podem ser aninhadas.

Compatibilidade com SOUNDEX

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

Depois de atualizar para o nível de compatibilidade 110 ou superior, talvez seja necessário reconstruir os índices, heaps ou restrições de CHECK que usam a função SOUNDEX.

  • Uma pilha que contém uma coluna computada persistente definida com SOUNDEX não pode ser consultada até que a pilha seja reconstruída executando a seguinte instrução:

    ALTER TABLE <table> REBUILD;
    
  • CHECK restrições definidas com SOUNDEX são desativadas após a atualização. Para habilitar a restrição, execute a seguinte instrução:

    ALTER TABLE <table> WITH CHECK CHECK CONSTRAINT ALL;
    
  • Os índices (incluindo exibições indexadas) que contêm uma coluna computada persistente definida com SOUNDEX não podem ser consultados até que o índice seja reconstruído executando a seguinte instrução:

    ALTER INDEX ALL ON <object> REBUILD;
    

Exemplos

Um. Utilize o SOUNDEX

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

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

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

S530  S530

B. Use DIFERENÇA

A função DIFFERENCE compara a diferença dos resultados do padrão SOUNDEX. O exemplo a seguir mostra duas cadeias de caracteres que diferem apenas em vogais. A diferença devolvida é 4, a menor diferença possível.

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

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

4

No exemplo a seguir, as cadeias diferem em consoantes; Portanto, a diferença devolvida é 2, a maior diferença.

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

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

2