La ricerca di più parole in una stringa in SQL Server

0

Domanda

Ho le trascrizioni di testo (stringa) colonna in una tabella di SQL Server e ho bisogno di identificare se i record contiene un numero di sicurezza sociale (n cifre di questa colonna, solo testo, quindi ho bisogno di precisare le cifre). In altre parole, ho bisogno di controllare se qualche stringa contiene qualsiasi combinazione di nove cifre da dieci cifre (uno, due, tre, quattro, cinque, sei, sette, otto, nove, zero). Posso essere d'accordo con l'identificazione di una combinazione di quattro cifre (le ultime quattro del numero di previdenza sociale).

Ho provato Like '%one%' or Like '%two%' e così via, ma che identifica solo le singole parole. Ho bisogno di trovare almeno quattro alcuna conseguenza nella stessa stringa.

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

Migliore risposta

0

È possibile utilizzare un aggregato EXISTS con un costruito tabella di parole

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

Si potrebbe cambiare >= 4 per = 9 per ottenere una corrispondenza esatta sul numero di parole

2021-11-24 09:58:35

In altre lingue

Questa pagina è in altre lingue

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