Pesquisar várias palavras em uma seqüência de caracteres no SQL Server

0

Pergunta

Eu tenho um transcrições de texto (cadeia de caracteres) de coluna em uma tabela no SQL Server e preciso para identificar se qualquer um dos registros contém um número de segurança social (nenhum dígitos nesta coluna, apenas texto, então eu preciso soletrar os dígitos). Em outras palavras, eu preciso verificar se as seqüências de caracteres contém qualquer combinação de nove dígitos a partir de dez dígitos possíveis (um, dois, três, quatro, cinco, seis, sete, oito, nove, zero). Que eu possa estar bem com a identificação de uma combinação de quatro dígitos (últimos quatro o número de segurança social).

Eu tentei Like '%one%' or Like '%two%' e assim por diante, mas que só se identifica palavras simples. Eu preciso encontrar, pelo menos, de quatro em qualquer consequência na mesma cadeia.

search sql sql-server tsql
2021-11-24 02:41:49
1

Melhor resposta

0

Você pode usar um agregado EXISTS com um construído mesa de palavras

SELECT *
FROM YourTable t
WHERE EXISTS (SELECT 1
    FROM (VALUES
        ('zero'),
        ('one'),
        ('two'),
        ('three'),
        ('four'),
        ('five'),
        ('six'),
        ('seven'),
        ('eight'),
        ('nine')
    ) v(word)
    WHERE t.YourColumn LIKE '%' + v.word + '%'
    HAVING COUNT(*) >= 4
);

Você pode alterar >= 4 para = 9 para obter uma correspondência exata sobre o número de palavras

2021-11-24 09:58:35

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................