es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Buscar múltiples palabras en una cadena en SQL Server

Tengo una columna de transcripciones de texto (string) en una tabla de SQL Server y necesito identificar si alguno de los registros contiene un número de seguro social (no hay dígitos en esta columna, solo texto, por lo que necesito deletrear los dígitos). En otras palabras, necesito verificar 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). Es posible que esté bien identificar una combinación de cualquier cuatro dígitos (los últimos cuatro del número de seguro social).

Intenté Like '%one%' or Like '%two%' y así sucesivamente, pero eso solo identifica palabras individuales. Necesito encontrar al menos cualquier cuatro en cualquier secuencia en la misma cadena.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para identificar si alguno de los registros en una columna contiene un número de seguro social (SSN, por sus siglas en inglés), se pueden utilizar patrones y expresiones regulares en SQL Server. Aquí hay un ejemplo de código que puede ayudarte a lograrlo:

    SELECT *
    FROM tu_tabla
    WHERE tu_columna LIKE '%[0-9][0-9][0-9][0-9]%' -- busca cualquier secuencia de cuatro dígitos
       OR tu_columna LIKE '%[0-9][0-9][0-9][uno|dos|tres|cuatro|cinco|seis|siete|ocho|nueve|cero]%' -- busca cualquier secuencia de cuatro dígitos seguida por cualquier palabra
       OR tu_columna LIKE '%[uno|dos|tres|cuatro|cinco|seis|siete|ocho|nueve|cero][0-9][0-9][0-9][uno|dos|tres|cuatro|cinco|seis|siete|ocho|nueve|cero]%' -- busca cualquier secuencia de cinco caracteres que contenga cuatro dígitos en cualquier combinación con cualquiera de los otros dígitos posibles
    

    La primera cláusula LIKE verifica cualquier secuencia de cuatro dígitos en la columna, mientras que las dos siguientes cláusulas LIKE buscan cualquier secuencia de cuatro o cinco caracteres que contenga cualquier combinación de cuatro dígitos con cualquiera de los otros posibles dígitos.

    Ten en cuenta que debes reemplazar tu_tabla y tu_columna con los nombres reales de tu tabla y columna, respectivamente. Además, ten en cuenta que este enfoque puede producir falsos positivos si la columna contiene números que parecen SSN pero que no lo son (por ejemplo, números de teléfono, códigos postales, etc.). A menudo se requiere un filtrado adicional para garantizar la precisión de los resultados.

Comments are closed.