Buscar varias palabras en una cadena en SQL Server

0

Pregunta

Tengo un transcripciones de texto (string) de la columna en una tabla en SQL Server y necesito identificar si alguno de los registros que contiene un número de seguro social (sin cifras en esta columna, sólo texto, por lo que necesito para escribir los dígitos). En otras palabras, se necesita comprobar si alguna de las cadenas contiene cualquier combinación de nueve dígitos de los diez posibles dígitos (uno, dos, tres, cuatro, cinco, seis, siete, ocho, nueve, cero). Puedo estar de acuerdo con la identificación de una combinación de cuatro dígitos (los últimos cuatro el número de seguridad social).

He intentado Like '%one%' or Like '%two%' y así sucesivamente, pero que sólo se identifica palabras sueltas. Necesito encontrar al menos alguna de las cuatro de ninguna consecuencia, en la misma cadena.

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

Mejor respuesta

0

Usted puede utilizar un agregado EXISTS con un construido la tabla de palabras

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
);

Usted podría cambiar >= 4 a = 9 para obtener una coincidencia exacta sobre el número de palabras

2021-11-24 09:58:35

En otros idiomas

Esta página está en otros idiomas

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